В какой ситуации я могу использовать 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.