使用Dask中的所有核心

时间:2017-03-07 18:14:50

标签: dask

我正在开发一个包含24个vCPU的Google云计算实例。运行的代码如下

import dask.dataframe as dd
from distributed import Client
client = Client()

#read data
logd = (dd.read_csv('vol/800000test', sep='\t', parse_dates=['Date'])
         .set_index('idHttp')
         .rename(columns={'User Agent Type':'UA'})
         .categorize())

当我运行它时(这也是我在加载数据后进行的后验数据分析的情况)我看到使用了11个核心,有时是4个。

enter image description here

有没有办法更好地控制它并充分利用核心?

1 个答案:

答案 0 :(得分:1)

read_csv会根据chunksize参数将文件拆分为块,每个输入文件至少有一个块。您只读取一个文件,似乎您获得了四个分区(即大小<4 * 64MB)。这对于数据量可能是合理的,并且许多小任务的额外并行化可能仅增加开销。

尽管如此,您可以更改blocksize参数并查看它对您有何不同,或者查看传递多个文件时会发生什么,例如read_csv('vol/*test')。或者,您可以在调用set_index

中设置分区