Dask 安装

如何安装 Dask

您可以使用 condapip 安装 Dask,或者从源代码安装。

如果您使用 Anaconda 分发版,Dask 将默认安装。

您还可以使用 conda install 命令安装或升级 Dask

conda install dask

这将安装 Dask 和所有常用依赖项,包括 pandas 和 NumPy。Dask 包在默认通道和 conda-forge 上都得到维护。您可以使用 -c 标志选择通道

conda install dask -c conda-forge

可选地,您可以使用以下命令进行最小化安装 Dask

conda install dask-core

这将安装运行 Dask 所需的最小依赖项集,类似于(但不完全相同于)python -m pip install dask

要使用 pip 安装 Dask,请运行以下命令

python -m pip install "dask[complete]"    # Install everything

这将安装 Dask、分布式调度器以及 pandas、Numpy 等常用依赖项。

您还可以只安装 Dask 库而不安装可选依赖项

python -m pip install dask                # Install only core parts of dask

dask.arraydask.dataframedask.distributed 这样的 Dask 模块在您安装相应的 NumPy、pandas 或 Tornado 之前将无法工作。这对于用户来说不常见,但对于下游库维护者来说更常见。

我们还为不同的功能子集维护了其他依赖项集

python -m pip install "dask[array]"       # Install requirements for dask array
python -m pip install "dask[dataframe]"   # Install requirements for dask dataframe
python -m pip install "dask[diagnostics]" # Install requirements for dask diagnostics
python -m pip install "dask[distributed]" # Install requirements for distributed dask

我们提供这些选项,以便轻量级 Dask 核心调度器的用户无需下载集合(Numpy、pandas、Tornado 等)的更“外来”的依赖项。

要从源代码安装 Dask,请从 GitHub 克隆仓库

git clone https://github.com/dask/dask.git
cd dask
python -m pip install .

您也可以安装所有依赖项

python -m pip install ".[complete]"

您可以在 pyproject.toml 文件的 project.optional-dependencies 字段中查看所有依赖项列表。

或者使用 -e 标志进行开发者安装(参见开发指南中的安装部分

python -m pip install -e .

分布式部署

要在分布式集群上运行 Dask,您还需要安装与您的资源管理器(如 Kubernetes、SLURM、PBS、LSF、AWS、GCP、Azure 或类似技术)匹配的 Dask 集群管理器。

更多关于此主题的信息请参阅部署文档

可选依赖项

Dask 中的特定功能可能需要额外的可选依赖项。例如,从 Amazon S3 读取需要 s3fs。以下列出了这些可选依赖项及其支持的最低版本。

依赖项

版本

描述

bokeh

>=3.1.0

生成 Dask 执行配置文件(dask.diagnostics 所需)

bottleneck

>=1.3.7

用于 dask 数组的 push 实现

cachey

>=0.1.1

使用缓存进行计算

cityhash

>=0.2.4

使用 CityHash 和 FarmHash 哈希函数进行数组哈希(比 MurmurHash 快约 2 倍)

crick

>=0.0.5

使用 tdigest 内部方法计算 dataframe 统计信息

cytoolz

>=0.11.2

内部迭代器、函数和字典的更快的 Cythonized 实现

dask-ml

>=1.4.0

使用 Dask 扩展的常见机器学习函数

fastavro

>=1.1.0

存储和读取 Apache Avro 文件中的数据

gcsfs

>=2021.9.0

存储和读取位于 Google Cloud Storage 中的数据

graphviz

>=0.8.4

使用 graphviz 引擎进行图可视化

h5py

>=3.4.0

将数组数据存储在 hdf5 文件中

ipycytoscape

>=1.0.1

使用 cytoscape 引擎进行图可视化

IPython

>=7.30.1

将使用 graphviz 引擎创建的图可视化保存到文件

jinja2

>=2.10.3

Dask 对象在 Jupyter Notebook 中的 HTML 表示(dask.diagnostics 所需)

lz4

>=4.3.2

透明地使用 lz4 压缩算法

matplotlib

>=3.5.0

图可视化的颜色映射支持

mimesis

>=5.3.0

使用 dask.datasets.make_people() 生成随机 bag 数据

mmh3

>=3.0.0

使用 MurmurHash 哈希函数进行数组哈希(比 SHA1 快约 8 倍)

numpy

>=1.24

dask.array 所需

pandas

>=2.0

dask.dataframe 所需

psutil

>=5.8.0

将 CPU 亲和性计入 CPU 数量,在读取 CSV 文件时智能推断块大小

pyarrow

>=14.0.1

在存储/读取 Apache ORC 或 Parquet 文件时支持 Apache Arrow 数据类型和引擎

python-snappy

>=0.6.0

在存储/读取 Avro 或 Parquet 文件时使用 Snappy 压缩

s3fs

>=2021.9.0

存储和读取位于 Amazon S3 中的数据

scipy

>=1.7.2

dask.array.statsdask.array.fftdask.array.linalg.lu() 所需

sparse

>=0.13.0

使用稀疏数组作为 dask 数组的后端

sqlalchemy

>=1.4.26

写入和读取 SQL 数据库

tblib

>=1.6.0

worker 回溯对象的序列化

tiledb

>=0.12.0

存储和读取 TileDB 文件中的数据

xxhash

>=2.0.0

使用 xxHash 哈希函数进行数组哈希(比 MurmurHash 快约 2 倍,比 CityHash 略慢)

zarr

>=2.12.0

存储和读取 Zarr 文件中的数据

测试

使用 py.test 测试 Dask

cd dask
py.test dask

天真地安装 Dask 可能不会默认安装所有需求(参见上面的 pip 部分)。您可以选择安装包含所有集合所有依赖项的 dask[complete] 版本

pip install "dask[complete]"

或者,您可以根据环境中的库选择仅测试某些子模块。例如,要仅测试 Dask 核心和 Dask 数组,我们可以按如下方式运行测试

py.test dask/tests dask/array/tests

更多详细信息请参阅开发指南中的测试部分