параллельное выполнение задачи `DataFrame.set_index ()` - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь создать индекс на большом фрейме данных dask.Независимо от того, какой планировщик я не могу использовать больше, чем эквивалент одного ядра для операции.Код:

(ddf.
 .read_parquet(pq_in)
 .set_index('title', drop=True, npartitions='auto', shuffle='disk', compute=False)
 .to_parquet(pq_out, engine='fastparquet', object_encoding='json', write_index=True, compute=False)
 .compute(scheduler=my_scheduler)
)

Я запускаю это на одном 64-ядерном компьютере.Что я могу сделать, чтобы использовать больше ядер?Или set_index по своей сути последовательный?

1 Ответ

0 голосов
/ 22 ноября 2018

Это должно использовать несколько ядер, хотя использование диска для перестановки может привести к другим узким местам, таким как ваш локальный жесткий диск.Зачастую вы не связаны дополнительными ядрами ЦП.

В вашей ситуации я бы использовал распределенный планировщик на одной машине, чтобы вы могли использовать панель диагностики для получения более подробной информации о ваших вычислениях.

...