portada spark rdd

Todo Apache Spark fue construido alrededor de RDD(Resilient distributed dataset)  y es el objeto principal cuando construimos aplicaciones con Spark. Pueden contener cualquier tipo de objetos incluyendo clases definidas por el desarrollador, en Spark todo el trabajo se expresa en crear, transformar o llamar operaciones que darán como resultado RDD’s.

Spark distribuirá los datos contenidos en los RDDs a lo largo del cluster y paralelizará las operaciones que se realicen sobre ellos de forma automática y sin que siquiera lo notes.

Dataset

Un dataset es una colección de datos, puede ser una lista de Strings, Integers o incluso registros de una base de datos.

¿Qué se puede hacer con un dataset?

Es posible realizar 2 tipos de operaciones con los RDDs :

  • Transformaciones: Se utiliza para aplicar funciones a los datos que darán como resultado un nuevo RDD, algunas de las transformaciones más comunes son filter, map, reduceByKey, join, cogroup, randomSplit, etc.
  • Acciones: Devuelven un resultado basado en un RDD, por ejemplo una aplicación contiene un dataset de tweets y aplica la transformación filter para obtener solo los tweets que contengan un hashtag determinado, a través de una acción podremos tomar ese RDD y transformarlo en otro tipo de dato para utilizarlo en nuestra aplicación, algunas de las acciones más comunes son firs, aggregate, collect, count, max, min, reduce, etc.

Conclusión

En conclusión, cuando trabajamos con Apache Spark nuestras aplicaciones seguirán un flujo como el siguiente:

  • Generarán RDDs con información obtenida de fuentes externas (archivos, bases de datos, brokers,etc.)
  • Aplicarán transformaciones
  • Se ejecutarán acciones para producir resultados.

En los siguientes posts veremos ejemplos de transformaciones y acciones aplicadas en ejemplos reales.

Si quieres seguir aprendiendo Apache Spark, en futuros posts veremos ejemplos cada vez más complejos, síguenos en nuestras redes sociales para enterarte sobre nuevo contenido https://www.facebook.com/devs4j/ y https://twitter.com/devs4j.

Autor: Alejandro Agapito Bautista

Twitter: @raidentrance

Contacto:raidentrance@gmail.com