Как использование Dask помогает избежать ошибок переполнения памяти на локальном компьютере? - PullRequest
0 голосов
/ 04 мая 2020

У меня проблемы с пониманием того, как Dask поможет избежать переполнения памяти на локальной машине. Причина, по которой я пытаюсь его использовать, заключается в том, что у меня есть набор данных среднего размера, который, когда я загружаю в Jupyter, используя Pandas dataframe, заставляет мою машину работать очень медленно и обычно убивает ядро ​​или просто останавливается. Итак, мое базовое понимание Dask и, в частности, в отношении Dataframes, таково: во-первых, Dask использует ленивые вычисления. Таким образом, если вы не запросите фактические вычисления с использованием метода compute, Dask фактически не будет выполнять вычисления на лету. Вместо этого он создает граф задач (в частности, ориентированный граф ацикли c) и использует его для разделения вычислений между различными «работниками». Рабочие могут быть разными машинами или разными ядрами в одной машине. Более того, Dask не загружает весь набор данных одновременно в оперативную память. Вместо этого он будет загружать «разделы» и распределять эти разделы среди рабочих. Итак, мой вопрос заключается в следующем: в конце концов, не придется ли Dask загружать все разделы в ОЗУ (чего я стараюсь избегать)? Когда я пишу это, я предполагаю, что Dask должен будет загрузить все разделы в ОЗУ, но, как только это будет сделано с вычислениями на данном разделе, он отправит его обратно на диск. Это то, что на самом деле происходит?

...