我正在开发一个包含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个。
有没有办法更好地控制它并充分利用核心?
答案 0 :(得分:1)
read_csv会根据chunksize参数将文件拆分为块,每个输入文件至少有一个块。您只读取一个文件,似乎您获得了四个分区(即大小<4 * 64MB)。这对于数据量可能是合理的,并且许多小任务的额外并行化可能仅增加开销。
尽管如此,您可以更改blocksize参数并查看它对您有何不同,或者查看传递多个文件时会发生什么,例如read_csv('vol/*test')
。或者,您可以在调用set_index。