В какой ситуации я могу использовать Dask вместо Apache Spark?
В настоящее время я использую Pandas и Spark для анализа данных. Я обнаружил, что Dask предоставляет параллельный массив NumPy и Pandas DataFrame.
Pandas прост и интуитивен для выполнения анализа данных в Python. Но мне трудно справляться с несколькими большими кадрами данных в Pandas из-за ограниченной системной памяти.
Простой ответ:
Apache Spark - это комплексная структура, объединяющая распределенные вычисления, SQL-запросы, машинное обучение и многое другое, что работает на JVM и обычно совместно развертывается с другими системами Big Data, такими как Hadoop.... Обычно Dask меньше и меньше веса, чем Spark.
Ниже я узнаю подробности из http://dask.pydata.org/en/latest/spark.html
- Dask - взвешенный вес
- Dask обычно используется на одной машине, но также хорошо работает на распределенном кластере.
- Dask предоставляет параллельные массивы, dataframes, машинное обучение и пользовательские алгоритмы.
- Dask имеет преимущество для пользователей Python, потому что он сам является библиотекой Python, поэтому сериализация и отладка, когда все идет не так, происходит более плавно.
- Dask отказывается от понимания на высоком уровне, позволяя пользователям выражать более сложные параллельные алгоритмы.
- Dask имеет меньший вес и легче интегрируется в существующий код и аппаратное обеспечение.
- Если вы хотите, чтобы один проект делал все, а вы уже на аппарате Big Data, 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 проще использовать, чем искру. Dask обладает такой гибкостью, как Pandas с большей мощностью для вычисления с большим количеством процессоров параллельно.
Я понимаю все приведенные выше факты о Dask.
Итак, примерно, сколько данных (в терабайте) можно обрабатывать с помощью Dask?
Ответы
Ответ 1
вы можете прочитать Сравнение Dask с Apache Spark
Apache Spark - это комплексная структура, объединяющая распределенные вычисления, SQL-запросы, машинное обучение и многое другое, что работает на JVM и обычно совместно развертывается с другими системами Big Data, такими как Hadoop. Первоначально он был оптимизирован для сбора и обработки объемных данных общих для инженерных данных и бизнес-аналитики, но с тех пор расширился. Искры обычно используются на малых и средних кластер, но также хорошо работает на одной машине.
Dask - это библиотека параллельного программирования, которая сочетается с числовой Экосистема Python для обеспечения параллельных массивов, dataframes, machine обучения и пользовательских алгоритмов. Он основан на Python и базовый стек C/Fortran. Первоначально Dask был разработан для дополнять другие библиотеки parallelism, особенно для числовых вычислительной и передовой аналитики, но с тех пор расширился. Даск обычно используется на одной машине, но также хорошо работает на распределенный кластер.
Обычно Dask меньше и легче, чем Spark. Это означает что он имеет меньше возможностей и вместо этого предназначен для использования в совместно с другими библиотеками, особенно с цифровыми Python.