暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Dask教程:简介

旺德福居 2021-07-10
801

本文翻译自 dask-tutorial 项目

欢迎来到 Dask 教程。

Dask 是一个并行计算库,可扩展现有的 Python 生态系统。本教程将更一般地介绍 Dask 和并行数据分析。

Dask 可以缩小到您的笔记本电脑,也可以扩展到集群中。在这里,我们将使用您在笔记本电脑上设置的环境,在本地并行分析中等规模的数据集。

概述

Dask 在大于内存 (larger-than-memory) 的数据集上提供多核和分布式并行执行。

我们可以从高层和底层来考虑 Dask

  • 高层集合:Dask 提供了模拟 NumPy、lists 和 Pandas 的高层 Array、Bag 和 DataFrame 集合,但可以在不适合内存的数据集上并行操作。对于大型数据集,Dask 的高层集合是 NumPy 和 Pandas 的替代品。

  • 底层调度程序:Dask 提供了并行执行任务图的动态任务调度程序。这些执行引擎支持上面提到的高级集合,但也支持自定义的、用户定义的工作负载。这些调度程序是低延迟的 (大约 1 毫秒),并且努力在很小的内存占用中运行计算。Dask 的调度程序是在复杂情况下直接使用 threading
     或 multiprocessing
     库或其他任务调度系统 (如 Luigi
     或 IPython parallel
    ) 的替代方案。

不同的用户在不同的级别上操作,但了解两者很有用。

Dask 用例 提供了许多 Dask 应该很适合的示例工作流。

https://stories.dask.org/en/latest/

准备

你应该克隆这个存储库:

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

binder
 子目录中包含的文件 environment.yml
 包含运行本教程所需的所有包的列表。要使用 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

在运行此笔记本 之前 执行此操作。

链接

  • 参考

    • Docs https://dask.org/

    • Examples https://examples.dask.org/

    • Code https://github.com/dask/dask/

    • Blog https://blog.dask.org/

  • 请求帮助

    • Stack Overflow 上的 dask
       标签,用于使用问题

    • github issues 用于错误报告和功能请求

    • gitter chat 用于一般、非错误、讨论

    • 参加现场教程

教程布局

每个部分都是一个 Jupyter 笔记本,是有文本、代码和练习的混合体。

如果你没有使用过 Jupyterlab,它类似于 Jupyter Notebook。如果您还没有使用过 Notebook,那么快速介绍是

  • 有两种模式:命令和编辑

  • 在命令模式下,按 Enter
     编辑单元格(例如这个 markdown 单元格)

  • 在编辑模式下,按 Esc
     切换到命令模式

  • 按 shift+enter
     执行一个单元格并移动到下一个单元格

工具栏有用于执行、转换和创建单元格的命令。

本教程的布局如下:

  • 基础:解释什么是 Dask,它是如何工作的,以及如何使用低级原语来设置计算。普通用户可能希望跳过本节,尽管我们认为它对所有用户都是有用的知识。

  • 分布式:有关在分布式调度器上运行 Dask 的信息,这可以扩展到分布式设置并增强对任务操作的监控。分布式调度器现在通常是执行任务工作的推荐引擎,即使在单个工作站或笔记本电脑上也是如此。

  • 集合:方便的抽象给大数据带来熟悉的感觉

    • bag:具有函数式范式的 Python 迭代器,例如可以在 func/iter-tools 和 toolz 中找到。将列表/生成器泛化为大数据;这对于 PySpark 的 RDD 的用户来说应该很熟悉

    • array:海量多维数值数据,具有 Numpy 功能

    • dataframes:海量表格数据,具有 Pandas 功能

尽管上面链接的文档中有大量信息,但我们在此旨在提供实用建议,以帮助您在日常情况下理解和应用 Dask。这意味着您不应期望涵盖 Dask 的每个功能,但希望这些示例与您想到的工作流类型相似。

练习:打印 Hello, world!

每个笔记本都会有练习供您解决。您将获得一个空白或部分完成的单元格,然后是一个带有解决方案的隐藏单元格。例如:

打印文本 “Hello, world!”

print("Hello, world!")

print("Hello, world!")

参考

dask-tutorial

https://github.com/dask/dask-tutorial



题图由 Kurt Bouda 在 Pixabay 上发布。
文章转载自旺德福居,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论