用途:Dask 是 Python 并行与分布式计算库,用于处理超过内存的数据集,可将 pandas/NumPy 代码扩展到单机多核乃至多机器集群,从笔记本(约 100 GiB)到集群(约 100 TiB)。
主要能力: 1)DataFrames:并行 pandas 操作,读取多个 CSV/Parquet 文件、过滤、groupby、join、聚合,支持 map_partitions 自定义操作。 2)Arrays:基于分块的并行 NumPy 操作,适用于超内存数组、HDF5/Zarr/NetCDF 科学数据,支持 map_blocks。 3)Bags:处理文本、JSON、日志等非结构化数据,支持 map、filter、fold、foldby,可转换为 DataFrame。 4)Futures:基于任务的并行,可构建动态工作流、依赖任务与有状态计算。 5)Schedulers:线程、进程、同步、分布式执行后端,可按计算切换。
安装:uv pip install "dask>=2025.1";完整版 uv pip install "dask[complete]";对象存储可另装 s3fs 或 gcsfs。自 2025.1.0 起基于表达式与查询规划的 DataFrame API 是唯一实现,不要单独安装 dask-expr 或设置 dataframe.query-planning: False。DataFrame I/O 需 PyArrow 16+。
基本用法:操作默认惰性,调用 .compute() 才执行;可用 dask.compute(*computations) 合并多次计算。分布式调度器:from dask.distributed import Client; client = Client(); print(client.dashboard_link)。调试时可用 dask.config.set(scheduler='synchronous')。
适用场景:超内存表格处理、多文件 ETL、科学数组计算、日志与 JSON 清洗、参数扫描等自定义并行工作流。
限制与注意:不要先用 pandas 本地加载再交给 Dask;避免循环中反复 compute();避免任务图过大;分块建议每块约 100 MB;线程适合数值计算,进程适合纯 Python/GIL 受限代码,分布式适合集群与监控;Futures 每任务约 1 ms 开销,不适合海量微小任务。缺失信息:本资料未提供收费、价格与许可证说明。