1) Данные читают рабочие.Клиент читает немного раньше времени, чтобы выяснить имена и типы столбцов и, при необходимости, найти разделители строк для разделения файлов.Обратите внимание, что все работники должны иметь доступ к интересующему файлу (файлам), для которого может потребоваться некоторая общая файловая система при работе в кластере.
2), 3) На самом деле, drop
,Методы groupby
и mean
вообще не генерируют промежуточные кадры данных, они просто накапливают график операций, которые должны быть выполнены (т. Е. Они lazy ).Вы можете рассчитать эти шаги и увидеть, что они быстрые.Во время исполнения промежуточные документы делаются на рабочих, при необходимости копируются другим работникам и удаляются как можно скорее.Копий планировщику или клиенту никогда не будет, если только вы явно не попросите об этом.
Итак, в корне вашего вопроса: вы можете лучше изучить производительность или свою работу, взглянув на панель инструментов 1011*.
Существует множество факторов, определяющих скорость развития: процессы могут совместно использовать канал ввода-вывода;некоторые задачи не освобождают GIL и поэтому плохо распараллеливаются в потоках;количество групп будет сильно влиять на объем перетасовки данных в группы ... плюс есть всегда некоторые издержки для каждой задачи, выполняемой планировщиком.
Поскольку Pandas эффективен, онНе удивительно, что для случая, когда данные легко помещаются в память, они работают хорошо по сравнению с Dask.