Actualmente estoy usando Pandas y Spark para el análisis de datos. Encontré que Dask proporciona una matriz NumPy paralelizada y Pandas DataFrame.
Pandas es fácil e intuitivo para realizar análisis de datos en Python. Pero encuentro dificultades para manejar múltiples marcos de datos más grandes en Pandas debido a la memoria limitada del sistema.
Respuesta simple:
Apache Spark es un marco todo incluido que combina computación distribuida, consultas SQL, aprendizaje automático y más que se ejecuta en la JVM y comúnmente se implementa conjuntamente con otros marcos de Big Data como Hadoop. ... Generalmente Dask es más pequeño y liviano que Spark.
Llego a conocer los detalles a continuación de http://dask.pydata.org/en/latest/spark.html
- Dask es de peso ligero
- Dask se usa normalmente en una sola máquina, pero también funciona bien en un clúster distribuido.
- Dask to proporciona matrices paralelas, marcos de datos, aprendizaje automático y algoritmos personalizados
- Dask tiene una ventaja para los usuarios de Python porque es en sí misma una biblioteca de Python, por lo que la serialización y la depuración cuando las cosas van mal se realizan sin problemas.
- Dask renuncia a la comprensión de alto nivel para permitir a los usuarios expresar algoritmos paralelos más complejos.
- Dask es más liviano y más fácil de integrar en el código y el hardware existentes.
- Si desea un solo proyecto que lo haga todo y ya está en hardware de Big Data, Spark es una apuesta segura
- Spark se usa generalmente en clústeres de tamaño pequeño a mediano, pero también funciona bien en una sola máquina.
Entiendo más cosas sobre Dask desde el siguiente enlace https://www.continuum.io/blog/developer-blog/high-performance-hadoop-anaconda-and-dask-your-cluster
- Si tiene problemas de memoria, limitaciones de almacenamiento o límites de CPU en una sola máquina cuando usa Pandas, NumPy u otros cálculos con Python, Dask puede ayudarlo a escalar todos los núcleos en una sola máquina o escalar horizontalmente en todos los núcleos y la memoria de su clúster.
- Dask funciona bien en una sola máquina para hacer uso de todos los núcleos de su computadora portátil y procesar datos más grandes que la memoria
- escala de manera flexible y elástica en clústeres con cientos de nodos.
- Dask funciona de forma nativa desde Python con datos en diferentes formatos y sistemas de almacenamiento, incluido el sistema de archivos distribuido Hadoop (HDFS) y Amazon S3. Anaconda y Dask pueden trabajar con su distribución de Hadoop empresarial existente, incluyendo Cloudera CDH y Hortonworks HDP.
http://dask.pydata.org/en/latest/dataframe-overview.html
Limitaciones
Dask.DataFrame no implementa toda la interfaz de Pandas. Los usuarios que esperan esto se sentirán decepcionados. Notablemente, dask.dataframe tiene las siguientes limitaciones:
- Establecer un nuevo índice a partir de una columna sin clasificar es costoso
- Muchas operaciones, como groupby-apply y join en columnas sin clasificar, requieren configurar el índice, que como se mencionó anteriormente, es costoso
- La API de Pandas es muy grande. Dask.dataframe no intenta implementar muchas características de pandas o cualquiera de las estructuras de datos más exóticas como NDFrames
Gracias a los desarrolladores de Dask. Parece una tecnología muy prometedora.
En general, puedo entender que Dask es más simple de usar que Spark. Dask es tan flexible como Pandas con más poder para computar con más CPU en paralelo.
Entiendo todos los hechos anteriores sobre Dask.
Entonces, ¿aproximadamente cuánta cantidad de datos (en terabytes) se pueden procesar con Dask?