Мне нужно обработать несколько больших (около 10 ГБ) файлов CSV. В настоящее время я использую Dask для предварительной обработки данных в некоторую агрегированную статистику, которую затем анализирую с помощью обычных панд.
У меня проблема в том, что Dask перезагружает данные для каждого вызова на compute()
. Некоторый фиктивный код для иллюстрации проблемы:
import dask.dataframe as dd
ddf = dd.read_csv('very_large_file.csv') # ca. 10GB
# Every line seems to trigger painfully slow re-reading of the CSV file from disk!
groupstats_A = ddf.groupby(['col1', 'col2']) \
.mean() \
.compute()
groupstats_B = ddf.groupby(['col3']) \
.mean() \
.compute()
groupstats_C = ddf.groupby(['col1', 'col2', 'col3']) \
.mean() \
.compute()
Есть ли способ оптимизировать этот код таким образом, чтобы функции compute()
не приходилось читать большой файл с диска при каждом вызове?