按多列分组然后汇总时,达速较慢

时间:2019-03-04 15:48:52

标签: python dask dask-distributed

我有一个数据框,其中包含列abcd。所有数据类型均为整数。

我有一个dask集群,其中有10个工作程序,20个内核和20 GB的RAM。

我想将数据帧按a和b分组,然后将d相加。

f = 's3://some_s3_bucket/some_file.csv_*.csv.gz'

cols = [
    'a',
    'b',
    'c',
    'd' ]

df = dd.read_csv(f, encoding='latin-1',  compression='gzip', header=None, names =cols, blocksize=None) 

df_pers = client.persist(df)

然后我做

df_agg_graph = df_pers.groupby(['a', 'b'])['c'].sum()
df_agg = df_agg_graph.compute()

结果永远需要计算。

我去时

f_agg_graph = df_pers.groupby(['a'])['c'].sum()

即我专注于a,只有一切都能按预期快速进行。

您知道这里可能是什么问题吗?

我相信我想按a分发数据,然后按ab分组,这是正确的吗?但是,即使我在坚持以上之前做df = df.set_index('a'),情况也不会变好。

非常感谢 c

0 个答案:

没有答案