Skip to content

IncubatorShokuhou/dask-tutorial-chinese

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

377 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dask 教程

本教程最后一次在 SciPy 2020上提供,这是一个虚拟会议。 SciPy 2020教程的视频可在线获取.

Binder Build Status

Dask提供一种在大于内存的数据集上多核运行的方法。

我们可以从高阶和低阶两个层次考虑:

  • 高阶集合: Dask提供了高阶的Array,Bag和DataFrame, 它们模仿了NumPy,List和Pandas,但可以在不适合主内存的数据集上并行操作。 Dask的高阶集合是NumPy和Pandas在大型数据集的替代品。
  • 低阶计划程序: Dask提供了动态任务计划程序,可并行执行任务图。 这些执行引擎为上述高阶集合提供支持,但也可以为用户定义的自定义工作负载提供支持。 这些调度器的等待时间很短(大约1毫秒),并且努力在较小的内存占用空间中运行计算。 Dask的调度器是在复杂情况或其他任务调度系统(如LuigiIPython parallel)中直接使用threadingmultiprocessing库的替代方法。

不同的用户在不同的级别上进行操作,但了解两者都有帮助。 本教程将在dask.arraydask.dataframe的高阶使用(偶数章节)和dask图和调度器的低阶使用(奇数章节)之间进行交错。

准备工作

1. 你需要克隆这个仓库

git clone http://github.com/IncubatorShokuhou/dask-tutorial

然后安装必要的包。 有三种方法可以安装这些包。选择最适合你的方法,且 只需选择其中一个。 他们分别是(按推荐顺序):

2a) 创建一个conda环境(推荐)

在主仓库目录

conda env create -f binder/environment.yml
conda activate dask-tutorial
jupyter labextension install @jupyter-widgets/jupyterlab-manager
jupyter labextension install @bokeh/jupyter_bokeh

2b) 在一个已有的环境中安装

您将需要以下核心库

conda install numpy pandas h5py pillow matplotlib scipy toolz pytables snakeviz scikit-image dask distributed -c conda-forge

您可能会发现以下库对某些练习有帮助

conda install python-graphviz -c conda-forge

请注意,此选项将更改您的现有环境,可能会更改您已经安装的软件包的版本。

2c) 使用Dockerfile

您可以从提供的Dockerfile中构建Docker映像。

$ docker build . # 这将构建a)中相同的环境

运行一个容器,将ID替换为先前命令的输出值

$ docker run -it -p 8888:8888 -p 8787:8787 <container_id_or_tag>

上述命令会生成一个链接(例如 http://(container_id or 127.0.0.1):8888/?token=<sometoken>) ,可用于从浏览器访问notebook。 您可能需要用localhost127.0.0.1替换为给定的主机名。

你只需要执行上述选项中的一个!

启动notebook

从仓库目录执行

jupyter notebook

jupyter lab

该步骤已在选项 c) 中执行,不需要再重复。

链接

大纲

  1. 概述 - dask在宇宙中的地位。

  2. 延迟执行 - 并行化一般python代码的单函数方法。

1x. 惰性执行 - 惰性执行背后的一些原则,供感兴趣的人参考。

  1. Bag - 第一个高级集合:用于函数式编程风格和清理杂乱数据的通用迭代器。

  2. Array - 分块化的类numpy功能,包含分布在集群中的 numpy 数组集合。

  3. Dataframe - 对分布在集群中的许多Pandas Dataframe的并行操作。

  4. 分布式 - Dask的集群调度器,以及如何查看UI的详细信息。

  5. 进阶分布式 - 关于分布式计算的更多细节,包括如何调试。

  6. Dataframe存储 - 将Dataframe读写到磁盘的有效方法。

  7. 机器学习 - 将dask应用于机器学习问题。

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 92.4%
  • Python 7.1%
  • Other 0.5%