В даний час я використовую 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 має такі обмеження:
- Встановлення нового індексу з невідсортованого стовпця є дорогим
- Багато операцій, як-от groupby-apply та приєднання до невідсортованих стовпців, вимагають встановлення індексу, що, як зазначалося вище, є дорогим
- API Pandas дуже великий. Dask.dataframe не намагається реалізувати багато функцій панди або будь-яку з найбільш екзотичних структур даних, таких як NDFrames
Дякую розробникам Dask. Це здається дуже перспективною технологією.
Загалом я розумію, що Dask простіший у використанні, ніж іскра. Dask є таким же гнучким, як і Pandas, з більшою потужністю для обчислення з більшою кількістю процесорів.
Я розумію всі вищезазначені факти про Даска.
Отже, приблизно, скільки обсягу даних (у терабайтах) можна обробити за допомогою Dask?