Всякий раз, когда я делаю вычисления с использованием dask-фрейма данных, я проверяю, загружаю ли я только необходимые столбцы, чтобы иметь возможность сэкономить на скорости вычислений.
Я просто не понимаю, как работает dask внутри и почему он не извлекает выгоду из паркетного столбчатого формата.
В небольшом приведенном ниже примере test.parquet
- это файл паркета с 13 столбцами различных dtypes, 10M строк и 16 разделов. Как вы можете видеть, если меня интересует только минимум одного столбца, у меня очень заметное увеличение скорости, когда я загружаю только целевой столбец. При использовании распределенного планировщика я также вижу, что в память загружается меньше данных.
Почему dask требует больше времени для вычислений, когда я загружаю весь фрейм данных только для целевых столбцов? Чем объясняются накладные расходы в тех же вычислениях, что и в примере?