提交新活动

谢谢!您的提交已收到!
哎呀!提交表单时出现问题。

提交新闻报道

谢谢!您的提交已收到!
哎呀!提交表单时出现问题。

订阅新闻邮件

谢谢!您的提交已收到!
哎呀!提交表单时出现问题。

并行 Python

快速简便

简便易用的并行 Python,满足您的需求

Dask 能为您做什么

大数据 Pandas

Dask DataFrames 在底层使用 pandas,因此您现有的代码很可能可以直接使用。它比 Spark 更快,也更易用。

Parquet logoApache Arrow logoPandas logo
import dask.dataframe as dd

df = dd.read_parquet("s3://data/uber/")

# How much did NYC pay Uber?
df.base_passenger_fare.sum().compute()

# And how much did drivers make?
df.driver_pay.sum().compute()

并行 For 循环

并行化您的 Python 代码,无论多么复杂。Dask 灵活多变,支持任意依赖和细粒度任务调度。

from dask.distributed import Client

client = Client()

# Define your own code
def f(x):
    return x + 1

# Run your code in parallel
futures = client.map(f, range(100))
results = client.gather(futures)

大数据数组

结合使用 Dask 和 NumPy/Xarray 来处理 TB 级多维数组数据,支持 HDF、NetCDF、TIFF 或 Zarr 等格式。 

NumPy logoXarray logoZarr logo
import xarray as xr

# Open image/array files natively
ds = xr.open_mfdataset("data/*.nc")

# Process across dimensions
ds.mean(dims=["lat", "lon"]).compute()  

机器学习

结合 Dask 和常用机器学习库来训练或预测大型数据集,通过使用所有数据提高模型准确性。

xGBoost logoPyTorch_logooptuna logoscikit learn logo
import xgboost as xgb
import dask.dataframe as dd

df = dd.read_parquet("s3://my-data/")
dtrain = xgb.dask.DaskDMatrix(df)

model = xgb.dask.train(
    dtrain,
    {"tree_method": "hist", ...},
    ...
)

规模化性能

在机器上速度快

Dask 轻量级,直接在您的机器上运行原始代码,不会带来额外负担。 无需虚拟化或编译器。

随着 Python 技术栈的成熟,您的代码也随之成熟。如今,在标准基准测试中,Dask 比 Spark 快 50%


        
import pandas as pd df = pd.read_parquet("s3://mybucket/myfile.parquet/") df = df[df.value >= 0] df.groupby("account")["value"].sum() import dask.dataframe as dd df = dd.read_parquet("s3://mybucket/myfile.*.parquet/") df = df[df.value >= 0] df.groupby("account")["value"].sum().compute()

为人设计

计算机很便宜。 人类很昂贵。

幸运的是,人们已经知道如何使用 Dask。

它就是 Python。它就是 pandas。它就是 NumPy。

Dask 的仪表盘能指导您提高效率,快速让您成为分布式计算专家。

经济高效

快速的人类 + 快速的机器 = 经济的计算

计算的数据行数
1000000000000
成本
$
0.00

Dask 用户通常以每 TiB 0.10 美元的价格处理云数据

您可以在何处运行 Dask

开源部署

您可以在笔记本电脑上运行 Dask(非常简单),或将其部署在任何资源管理器上,如 Kubernetes、HPC 作业调度器、云 SaaS 服务,甚至是传统的 Hadoop/Spark 集群。

Kubernetes logoYarn logoSlurm logoLSF logoOpenOBS logo
from dask.distributed import LocalCluster

cluster = LocalCluster(
    processes=False,
)       
client = cluster.get_client()

# Use Dask locally
import dask.dataframe as dd
df = dd.read_parquet("/path/to/data.parquet")
df.value.mean().compute()

您可以在何处运行 Dask

托管云

您可以通过开源 Kubernetes 或简便的 SaaS 解决方案在云端运行 Dask。 Coiled 对少量使用的个人用户免费,对拥有云账户的任何人来说都很容易使用。

Amazon Web Services logoGoogle Cloud logoMicrosoft Azure Logo
from coiled import Cluster

cluster = Cluster(
    n_workers=100, region="us-east-2",
)
client = cluster.get_client()

# Use Dask on the cloud
import dask.dataframe as dd
df = dd.read_parquet("s3://data.*.parquet")
df.value.mean().compute()

用户如何评价 Dask

人们使用 Dask 并喜欢它!您不会孤单!
它很简便
它很强大
它解决了我的问题
“Dask 在使 Python 分布式和内存外计算变得简便易用方面一直是先行者,让所有人都能使用。”
Wes McKinney
Wes McKinney,Pandas
“在 Capital One,Dask 的早期实现使得模型训练时间在几个月的开发努力后减少了 91%。”
Ryan McEntee
Ryan McEntee,Capital One
“我的气候科学研究得益于 Dask。Dask 与 Xarray 无缝集成,使得在多维数据集上运行大规模计算变得容易。我可以专注于研究,而不是并行计算。”
Paige Martin
Paige Martin,Pangeo
“Dask 在处理不符合表格结构的通用数据结构时表现出色。PySpark 有 RDD,但谁想用 Python 编写代码并调试冗长的 Java 日志呢?”
Ajith Aravind,Simeio
“Dask 通过使在 HPC 或云端轻松扩展数据处理管道,改变了世界与天气、气候和地理空间数据交互的方式。五年前看似不可能的事情,如今得益于 Dask 已成为常规操作。”
Ryan Abernathy
Ryan Abernathy,Earthmover
“使用 Dask,我可以轻松调整在单机上运行的代码,并将其扩展到整个集群。很少有其他工具能让您如此快速地启动——无论使用哪种语言。”
Jacqueline Nolis
Jacqueline Nolis,Fanatics Inc.
“Dask 还使得使用多个 Python 进程在本地轻松部署分布式工作成为可能,其方式与完整生产负载的分布式方式几乎相同。”
Hugues Demers
Hugues Demers,Grubhub
“为了进一步加速用户在云端轻松扩展的能力,我们通过设置预配置的 Horovod 和 Dask 集群进行了扩展。”
Meenakshi Sharma
Meenakshi Sharma,Wayfair
“我以前一直在使用 Spark。越早转向 Dask,您就会越早感到庆幸。”
John Renken
John Renken,Rebuy

使用 Dask 的组织

Capital One
DE Shaw & Co
Grubhub
Microsoft
NASA
NVIDIA
Shell
Two Sigma
US Air Force
US government
Walmart
arm

用例

您能用 Python 做的一切,都可以用 Dask 进行扩展

非常容易上手

您现在就可以在您的电脑上运行 Dask。它简单且轻量级。

        
$ conda install dask $ pip install "dask[complete]"

大多数人仅在笔记本电脑上使用 Dask 来处理高达 100 GiB 的数据集。Dask 在单机上运行效果很好。