множественная сумма (). compute () в dask на очень большом наборе данных - PullRequest
0 голосов
/ 11 марта 2019

У меня есть dask dataframe со 100 разделами (объединяющими 100 json-файлов, которые составляют около 45 ГБ). Я хочу рассчитать количество метрик с помощью .sum (). Compute () в 15-20 столбцах. Для каждого .compute () это занимает так много времени. Есть ли лучший способ сделать все эти sum (). Compute () параллельно?

1 Ответ

0 голосов
/ 12 марта 2019

Да, есть лучший способ!

Просто сделайте .sum() с каждой вещью, которую вы хотите - это создает ленивые рецепты выполняемой работы - и затем передайте набор из них dask.compute(), и он сделает их всех за один раз, разделяя любые промежуточные значения, где это возможно.

dask.compute(df.a.sum(), df.b.sum(), df.c.sum(), df.d.sum())

В качестве альтернативы, вы можете просто выбрать нужные столбцы (df[[col1, col2, ...]]) и затем сделать один .sum().compute()

df[['a', 'b', 'c', 'd']].sum().compute()
...