我有一个数据框,其中包含列a
,b
,c
和d
。所有数据类型均为整数。
我有一个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
分发数据,然后按a
和b
分组,这是正确的吗?但是,即使我在坚持以上之前做df = df.set_index('a')
,情况也不会变好。
非常感谢 c