用途:Dask 是 Python 并行与分布式计算库,用于在数据超过可用内存或需要跨集群时扩展现有 pandas/NumPy 代码。它支持单机超内存执行、多核并行加速,以及跨多机的 TB 级分布式计算,可从笔记本(约 100 GiB)扩展到集群(约 100 TiB)。
主要能力:包含五个组件。DataFrames 并行化 pandas 操作,适合超出内存的表格数据、多 CSV/Parquet 文件处理;Arrays 用分块算法扩展 NumPy,适合科学数据(HDF5、Zarr、NetCDF);Bags 以函数式操作处理文本、JSON、日志等非结构化数据;Futures 基于任务构建自定义并行工作流,支持动态依赖;Schedulers 控制执行后端(线程、进程、同步、分布式)。
使用方式:操作通常是惰性的,需调用 .compute() 触发。示例:import dask.dataframe as dd; ddf = dd.read_csv('data/2024-*.csv'); result = ddf[ddf['value'] > 100].groupby('category').mean().compute()。数组示例:import dask.array as da; x = da.random.random((100000, 100000), chunks=(10000, 10000)); z = (x + 100).mean(axis=0); result = z.compute()。Futures 需分布式客户端:from dask.distributed import Client; client = Client(); futures = client.map(process, range(100)); results = client.gather(futures); client.close()。
适用场景:ETL 管道、多文件处理、时间序列、日志与 JSON 清洗、大规模数组计算、参数扫描与自定义并行算法。
限制与注意:不要先用 pandas 本地加载再交给 Dask;避免重复 compute();任务图不宜过大;分块目标约 100 MB;线程适合数值计算,进程适合纯 Python,同步便于调试,分布式提供仪表盘。任务开销约 1 ms,不适合海量微小任务。资料未提供收费、价格或平台信息。