У якій ситуації я можу використовувати Dask замість Apache Spark? [зачинено]


81

В даний час я використовую 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 to забезпечує паралельні масиви, кадри даних, машинне навчання та власні алгоритми
  • Dask має перевагу для користувачів Python, оскільки він сам є бібліотекою Python, тому серіалізація та налагодження, коли щось піде не так, відбувається більш гладко.
  • Dask відмовляється від розуміння високого рівня, щоб дозволити користувачам виражати більш складні паралельні алгоритми.
  • Dask має меншу вагу і його легше інтегрувати в існуючий код та обладнання.
  • Якщо вам потрібен єдиний проект, який робить все, і ви вже використовуєте обладнання для великих даних, тоді Spark - це надійний вибір
  • Іскра зазвичай використовується на малому та середньому кластері, але також добре працює на одній машині.

Я розумію більше речей про Даска за посиланням нижче 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 має такі обмеження:

  1. Встановлення нового індексу з невідсортованого стовпця є дорогим
  2. Багато операцій, як-от groupby-apply та приєднання до невідсортованих стовпців, вимагають встановлення індексу, що, як зазначалося вище, є дорогим
  3. API Pandas дуже великий. Dask.dataframe не намагається реалізувати багато функцій панди або будь-яку з найбільш екзотичних структур даних, таких як NDFrames

Дякую розробникам Dask. Це здається дуже перспективною технологією.

Загалом я розумію, що Dask простіший у використанні, ніж іскра. Dask є таким же гнучким, як і Pandas, з більшою потужністю для обчислення з більшою кількістю процесорів.

Я розумію всі вищезазначені факти про Даска.

Отже, приблизно, скільки обсягу даних (у терабайтах) можна обробити за допомогою Dask?


Це питання дуже широке
MRocklin

1
Врахування лише обсягу даних недостатньо для вибору найкращих паралельних інструментів / стратегій. Потрібно враховувати, як алгоритм обробляє дані. Я не пробував обидва, але, мабуть, спробую даск на одній машині, такій як ноутбук чи ПК. І буде розглядати можливість розгортання для іскри, коли виникає необхідність запускати кластер із декількома вузлами. Оскільки виглядає дуже складно навчитися і налаштувати кожен компонент за допомогою фреймворку, що поставляється з іскрою.
ReneWang 02.03.17

Ви можете знайти відповідь тут: medium.com/datadriveninvestor / ...
Том

Відповіді:


40

Ви можете прочитати порівняння Dask з Apache Spark

Apache Spark - це всеохоплюючий фреймворк, що поєднує розподілені обчислення, SQL-запити, машинне навчання та багато іншого, що працює на JVM і зазвичай спільно розгортається з іншими фреймворками великих даних, такими як Hadoop. Спочатку він був оптимізований для масового прийому даних та запитів, поширених в інженерії даних та бізнес-аналітиці, але з тих пір розширився. Іскра зазвичай використовується на малому та середньому кластері, але також добре працює на одній машині.

Dask - це бібліотека паралельного програмування, яка поєднується з екосистемою Numeric Python, забезпечуючи паралельні масиви, кадри даних, машинне навчання та власні алгоритми. Він заснований на Python та фундаментальному стеку C / Fortran. Спочатку Dask був розроблений для доповнення інших бібліотек паралелізмом, зокрема для числових обчислень та вдосконаленої аналітики, але з тих пір він розширився. Dask зазвичай використовується на одній машині, але також добре працює на розподіленому кластері.

Як правило, Dask має меншу вагу та легшу вагу ніж Spark. Це означає, що він має менше можливостей і замість цього призначений для використання спільно з іншими бібліотеками, особливо тими, що мають числову екосистему Python.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.