Datasets y DataFrames en Apache Spark
Te contamos que son los Datasets y DataFrames en Apache Spark. Conoce sus características y cómo usarlos en la práctica que te proponemos...
Conoce las principales diferencias que existen entre Apache Spark y Hadoop para procesamientos Big Data.
Tabla de contenidos
Conoce las principales diferencias que existen entre Apache Spark y Hadoop para procesamientos Big Data.
Antes de conocer las diferencias existentes entre ambos sistemas, vamos a ver sus similitudes:
El uso de Spark es ventajoso frente a Hadoop debido a tres razones:
No obstante, ambas tecnologías se pueden combinar, ya que es habitual usar HDFS como sistema de almacenamiento de ficheros y Spark para el procesamiento de datos.
La aparición de Spark fue posterior al de Hadoop, y fue debido a que hubo problemas de velocidad en el paradigma MapReduce que utiliza Apache Hadoop. Estos problemas de velocidad se dan en casos con muchas operaciones de escritura y lectura de datos en disco.
Los principales casos en los que hay limitaciones de la velocidad en MapReduce son:
Las claves de la eficiencia de Spark son varias:
En los RRD se dividen los datos en particiones en nodos del clúster, permitiendo operaciones en paralelo, y además se crea un grafo de etapas de trabajo a ejecutar en cada nodo del clúster, a partir las tareas submitidas.
Los grafos se denominan DAG (Directed Acyclic Graph) o grafos acíclicos dirigidos, y hay una componente de Spark, el DAG Scheduler, que genera un plan de ejecución con la secuencia óptima de operaciones que más rápido se pueden ejecutar.
La velocidad sobre las operaciones de los RDD depende de si estas afectan a una o varias particiones. En este sentido se habla de dos tipos de transformaciones:
Se sigue la siguiente secuencia:
Por ejemplo, si quisiéramos hacer un filtro sobre resultado de unir dos RDD, tendríamos dos alternativas, primero filtrar y luego hacer la unión o primero hacer la unión y luego filtrar. La primera opción es más rápida, ya que el join es más lento.
Para conseguir está optimización Spark tiene una estrategia de ejecución, conocida como lazy evaluation, en la que las operaciones no se ejecutan inmediatamente, si no que se espera que el driver pida los resultados, y es esta espera la que permite al planificador optimizar la ejecución de las tareas.
Aprende a programar scripts de procesamiento de datos capaces de ejecutarse de forma clusterizada mediante el framework Apache Spark.
Recuerda que puedes comenzar este curso con tu suscripción de OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.
También te puede interesar
Te contamos que son los Datasets y DataFrames en Apache Spark. Conoce sus características y cómo usarlos en la práctica que te proponemos...