У меня есть фрейм данных со столбцами a
, b
, c
и d
.Все типы данных - целые числа.
У меня есть dask-кластер с 10 рабочими, 20 ядрами и 20 ГБ оперативной памяти.
Я хотел бы сгруппировать кадры данных по 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