使用Dask中的所有核心

Jua*_*oMF 5 dask

我正在使用24个vCPU进行谷歌云计算实例.运行的代码如下

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())
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

mdu*_*ant 1

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

尽管如此,您可以更改块大小参数并查看它对您有什么区别,或者查看当您传递多个文件(例如read_csv('vol/*test'). 或者,您可以在调用set_index时设置分区。