Я получил огромный (140MM записей) набор данных, и Dask пригодился, но я не уверен, смогу ли я сделать лучше. Представьте, что записи в основном числовые (два столбца являются датами), поэтому процесс преобразования из CSV в паркет был быстрым (dask.dataframe.read_csv ('in.csv'). To_parquet ('out.pq')), но
(i) Я хотел бы использовать данные на Amazon Athena, так что один паркетный файл был бы хорош. Как этого добиться? Dask сохранил его в виде сотен файлов. (ii) Для исследовательского анализа данных, который я пробую с этим набором данных, есть определенные операции, в которых мне нужно больше, чем пара переменных, которые не помещаются в память, поэтому я постоянно выкидываю представления с двумя / тремя переменными вSQL, этот код эффективно использует dask?
mmm = ['min','mean','max']
MY_COLUMNS = ['emisor','receptor','actividad', 'monto','grupo']
gdict = {'grupo': mmm, 'monto': mmm, 'actividad': ['mean','count']}
df = dd.read_parquet('out.pq', columns=MY_COLUMNS).groupby(['emisor','receptor']).agg(gdict)
df = df.compute()
df.columns = ['_'.join(c) for c in df.columns] # ('grupo','max') -> grupo_max
df.to_sql('er_stats',conn,index=False,if_exists='replace')
Чтение файла занимает около 80, а запись в SQL - около 60 секунд.