В настоящее время я использую Pandas и Spark для анализа данных. Я обнаружил, что Dask предоставляет распараллеленный массив NumPy и Pandas DataFrame.
Pandas - это простой и интуитивно понятный инструмент для анализа данных в Python. Но мне трудно обрабатывать несколько больших фреймов данных в Pandas из-за ограниченной системной памяти.
Простой ответ:
Apache Spark - это комплексная среда, объединяющая распределенные вычисления, запросы SQL, машинное обучение и многое другое, работающая на JVM и обычно совместно развертываемая с другими средами больших данных, такими как Hadoop. ... Обычно Dask меньше и легче Spark.
Я узнаю ниже подробности из http://dask.pydata.org/en/latest/spark.html
- Даск легкий
- Dask обычно используется на одной машине, но также хорошо работает в распределенном кластере.
- Dask предоставляет параллельные массивы, фреймы данных, машинное обучение и настраиваемые алгоритмы
- У Dask есть преимущество для пользователей Python, потому что это сама библиотека Python, поэтому сериализация и отладка, когда что-то идет не так, происходит более плавно.
- Даск отказывается от высокоуровневого понимания, чтобы позволить пользователям выражать более сложные параллельные алгоритмы.
- Dask легче, и его легче интегрировать в существующий код и оборудование.
- Если вам нужен единый проект, который делает все, и вы уже используете оборудование для работы с большими данными, Spark - беспроигрышный вариант.
- Spark обычно используется в кластерах малого и среднего размера, но также хорошо работает на одной машине.
Я понимаю больше о Dask из приведенной ниже ссылки https://www.continuum.io/blog/developer-blog/high-performance-hadoop-anaconda-and-dask-your-cluster
- Если вы сталкиваетесь с проблемами памяти, ограничениями хранилища или границами ЦП на одной машине при использовании Pandas, NumPy или других вычислений с Python, Dask может помочь вам масштабировать все ядра на одной машине или масштабировать на всех ядрах и памяти кластера.
- Dask хорошо работает на одной машине, позволяя использовать все ядра вашего ноутбука и обрабатывать данные, превышающие объем памяти
- гибко и эластично масштабируется на кластерах с сотнями узлов.
- Dask изначально работает с Python с данными в различных форматах и системах хранения, включая распределенную файловую систему Hadoop (HDFS) и Amazon S3. Anaconda и Dask могут работать с существующим корпоративным дистрибутивом Hadoop, включая Cloudera CDH и Hortonworks HDP.
http://dask.pydata.org/en/latest/dataframe-overview.html
Ограничения
Dask.DataFrame не реализует весь интерфейс Pandas. Ожидающие этого пользователи будут разочарованы. Примечательно, что dask.dataframe имеет следующие ограничения:
- Установка нового индекса из несортированного столбца стоит дорого
- Многие операции, такие как groupby-apply и join для несортированных столбцов, требуют установки индекса, что, как упоминалось выше, является дорогостоящим.
- API Pandas очень большой. Dask.dataframe не пытается реализовать многие функции pandas или любые более экзотические структуры данных, такие как NDFrames.
Спасибо разработчикам Dask. Вроде очень перспективная технология.
В целом я понимаю, что Dask проще в использовании, чем Spark. Dask такой же гибкий, как и Pandas, с большей мощностью для параллельных вычислений с большим количеством процессоров.
Я понимаю все вышеперечисленные факты о Даске.
Итак, какой примерно объем данных (в терабайтах) может быть обработан с помощью Dask?