фрагментированные данные Python панды, DASK - PullRequest
0 голосов
/ 08 ноября 2019

В чем разница использования

//DASK
b = db.from_sequence(_query,npartitions=2)
df = b.to_dataframe()
df = df.compute()  

//PANDAS
df = pd.DataFrame(_query)

Я хочу выбрать лучший вариант для фрагментации больших объемов данных и без потери производительности

1 Ответ

2 голосов
/ 08 ноября 2019

В соответствии с рекомендациями Dask для фреймов данных https://docs.dask.org/en/latest/dataframe-best-practices.html, для данных, помещаемых в ОЗУ, используйте Pandas, вероятно, это будет более эффективным.

Если вы решите использовать Dask, избегайте очень больших разделов,Если вы меняете количество разделов вручную, учитывайте доступную память и ядра. Например, машине с 100 ГБ и 10 ядрами обычно требуются разделы в диапазоне 1 ГБ.

Начиная с Dask 2.0.0 вы можете сделать это, используя что-то вроде: df.repartition (partition_size = "100MB"))

Другие советы, которые я могу предложить, если вы решите придерживаться Dask, это настроить локального клиента, где вы сможете воспользоваться Dask Distributed http://distributed.dask.org/en/latest/client.html. Оттуда избегайте полной перестановки данных и сокращайте доВы можете перед вычислением в Панд.

...