Big Data: La evolución de los datos
En esta era digital a diario se están generando grandes cantidades de datos de forma exponencial, pero el verdadero reto está en...
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 con este framework revolucionario del big data.
Tabla de contenidos
En este video vamos a hablaros sobre DataSet
y el DataFrame
dentro del framework de Apache Spark.
Vamos a ver una pequeña parte teórica acerca de ambos y posteriormente vamos a realizar una pequeña práctica con DataFrame.
Un DataSet es una colección de datos distribuidos que tienen ya una estructura, a diferencia de los RDD, que son conjuntos de datos desestructurados.
Sus características y ventajas principales son:
Un DataFrame es un DataSet que a la vez está organizado en columnas.
Vamos a tener los datos estructurados y cada columna con su nombre correspondiente, con lo que nos va a resultar mucho más sencillo consultar, modificar o transformar ese conjunto de datos.
Una SparkSession
es el objeto principal o la base a partir de la cual cuelga toda la funcionalidad de Apache Spark.
Es similar al SparkContext de los RDD, pero en este caso, para trabajar con SparkSQL, los DataFrame y DataSet.
Tiene este constructor:
val spark = SparkSession.builder()
Al que se le pueden añadir una serie de parámetros o de nuevas funciones para añadir un nombre, indicar la cantidad de memoria y otros muchos aspectos de configuración.
Como ya hemos dicho antes, a la hora de trabajar con un DataFrame, la base o de donde cuelga toda la funcionalidad es una SparkSession. Para crearla lo que haremos de la siguiente forma:
val spark = SparkSession.builder().appName(“MiApp”).master(“local”).getOrCreate()
Pero antes vamos a importar SparkSQL:
import org.apache.spark.sql.SparkSession
Y una vez generada nuestra SparkSession vamos a crear un DatFrame a partir de un fichero de texto. En este caso emplearemos un fichero que contiene los nombres de los personajes de la serie “Strangers Things”, un archivo json que contiene el nombre, la edad y el sexo de los mismos.
Para cargar este fichero lo vamos a cargar en una variable llamada characters:
val characters = spark.read.json(“/home/vmuser/ficheros/strangersCharacters.json”)
Esto nos va a generar un DataFrame de personajes con tres columnas, columna nombre, columna edad y columna sexo.
Para mostrar ese DataFrame usamos esta función:
characters.show()
Podemos mostrar únicamente los nombres de las columnas del DataFrame:
characters.columns
También podemos mostrar sólo las columnas existentes e información sobre las mismas:
characters.printSchema()
Como hemos comentado antes, se pueden hacer select o query fáciles sobre el DataFrame. Por ejemplo, para mostrar un nuevo DataFrame con la selección de las variables nombre y edad:
characters.select(“nombre”,”edad”).show()
También os comentamos antes que se poseen las mismas ventajas que los RDD, como por ejemplo, podemos aplicar un filtro sobre este DataFrame. En este caso para filtrar los niños (children) que tengan menos de 13 años y que nos muestre esos elementos:
val children = characters.filter($.”edad” < 13)
children.show
Se pueden hacer muchas más operaciones, como por ejemplo mostrar el número de elementos que contiene el DataFrame:
children.count()
O también mostrar los tres primeros elementos del DataFrame:
children.head(3)
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
En esta era digital a diario se están generando grandes cantidades de datos de forma exponencial, pero el verdadero reto está en...
Te contamos qué es Apache Spark, el framework open source de computación con el que se consigue ganar en velocidad a la...