为什么只雇用工人?

时间:2019-05-03 14:37:19

标签: python dask dask-distributed

我正在通过在笔记本电脑上运行四名工人的本地集群来试验Dask。

我在工作人员之间分配了一个Pandas数据框,但是当我在工作人员上运行一个函数时,我从仪表板上看到实际上只使用了其中一个。

我想念什么?

代码在这里

from distributed import Client
client = Client('127.0.0.1:56947')
dd = client.scatter(df, broadcast=True) # df is a pandas Dataframe
r = client.submit(process_df, dd) 

1 个答案:

答案 0 :(得分:3)

此行

dd = client.scatter(df, broadcast=True)

df已复制给您的每个工人。但是,它是单个实体,最终您要提交一个要处理的任务。任务是dask中的粒度单位,不会被Dask分解。

您想要做的就是将数据帧分成多个分区。您可以自己执行此操作(df.loc[..]),但是还有一个dask.dataframe专门用于执行这种操作:例如,将现有的pandas.read_csv替换为dask.dataframe.read_csv