Ejecución distribuida Spark para Python

Ejemplo “Hola mundo” Definir el script en Python a ejecutar Código del fichero hola_mundo.py from pyspark.sql import SparkSession spark = SparkSession.builder.appName(“Hola_Mundo”).getOrCreate() print(“Hola mundo”) spark.stop() Nota: Al ser un lenguaje interpretado no es necesario compilarlo para su ejecución.   Ejecución distribuida del script Para ejecutar de forma distribuida el script en python detro de un entorno…

Autor: Diego Calvo

Read More »

Procesar datos en tiempo real (streaming) en Scala

Prerequisitos Limpiar todos los hdfs generados, utilizando la linea de comandos hdfs dfs -rm -r /streaming hdfs dfs -mkdir /streaming hdfs dfs -ls /streaming Generar datos usados para iniciar el análisis Se genera una serie de datos en formato json que se almacenan en un fichero hdfs. val events = sc.parallelize( “””  [{“accion”:”Abrir”, “tiempo”:”2018-08-01T00:01:17Z”},  …

Autor: Diego Calvo

Read More »

Agrupar elementos de un dataframe en Scala

Ejemplo: Agrupar datos de forma simple Ejemplo donde se agrupa la tabla personas por apellido df.groupBy(“apellido”).count().show() +——–+—–+ |apellido|count| +——–+—–+ | Martin| 1| | Garcia| 3| +——–+—–+ Ejemplo: Agrupar datos combinado con filtro Ejemplo donde se agrupa la tabla personas por apellido y se selecciona los que tenga más de 2 apariciones. df.groupBy(“apellido”).count().filter(“count > 2”).show() +——–+—–+…

Autor: Diego Calvo

Read More »

Ordenar dataframe en Scala

Ejemplo: Ordenar datos simple Ejemplo donde se ordena la tabla personas por nombre df.sort(desc(“nombre”)).show() df.sort($”nombre”.desc).show() df.orderBy($”nombre”.desc).show() +——+——–+—-+——-+ |nombre|apellido|edad|salario| +——+——–+—-+——-+ | Sara| Garcia| 35| 34000| | Paco| Garcia| 24| 24000| | Lola| Martin| 29| 31000| | Juan| Garcia| 26| 27000| +——+——–+—-+——-+   Ejemplo: Ordenar datos por varios criterios Ejemplo donde se ordena la tabla personas por…

Autor: Diego Calvo

Read More »

Funciones estadísticas de dataframes en Scala

Ejemplo de funciones estadiscias: media Muestra un ejemplo de como realizar la media sobre un conjunto de datos val df = Seq(   (“Paco”,”Garcia”,24,24000),   (“Juan”,”Garcia”,26,27000),   (“Lola”,”Martin”,29,31000),   (“Sara”,”Martin”,32,32000),   (“Sara”,”Garcia”,35,34000) ).toDF(“nombre”, “apellido”,”edad”,”salario”) df   .select(avg(“edad”))   .show() +———+ |avg(edad)| +———+ | 29.2| +———+ Ejemplo de funciones estadiscias: suma Muestra un ejemplo de como…

Autor: Diego Calvo

Read More »

Mostar datos de dataframes en Scala

Mostar datos de tabla Muestra los datos del dataframe val df = Seq(   (“Paco”,”Garcia”,24,24000),   (“Juan”,”Garcia”,26,27000),   (“Lola”,”Martin”,29,31000),   (“Sara”,”Garcia”,35,34000) ).toDF(“nombre”, “apellido”,”edad”,”salario”) df.show() +——+——–+—-+——-+ |nombre|apellido|edad|salario| +——+——–+—-+——-+ | Paco| Garcia| 24| 24000| | Juan| Garcia| 26| 27000| | Lola| Martin| 29| 31000| | Sara| Garcia| 35| 34000| +——+——–+—-+——-+ Mostrar resumen de datos Muestra una tabla…

Autor: Diego Calvo

Read More »

Unir tablas con SQL Spark en Scala

Ejemplo: Unir tablas Unir tablas que tenga el identificador comun val df = Seq(   (1,”Paco”,”Garcia”,24,24000),   (2,”Juan”,”Garcia”,26,27000),   (3,”Lola”,”Martin”,29,31000),   (4,”Sara”,”Garcia”,35,34000) ).toDF(“id”,”nombre”, “apellido”,”edad”,”salario”) df.createOrReplaceTempView(“personas”) val df = Seq(   (1,”Rojo”,”Pasta”),   (2,”Amarillo”,”Pizza”),   (3,”Azul”,”Patatas”),   (5,”Rojo”,”Pizza”),   (6,”Negro”,”Pulpo”) ).toDF(“id”, “color”,”comida”) df.createOrReplaceTempView(“gustos”) spark     .sql(     “””select p.*, g.*       |from personas p       |inner…

Autor: Diego Calvo

Read More »

Selecionar y filtrar con SQL Spark en Scala

Ejemplo: Contar datos Contar las personas que sean mayores de 30 años val df = Seq(   (“Paco”,”Garcia”,24,24000),   (“Juan”,”Garcia”,26,27000),   (“Lola”,”Martin”,29,31000),   (“Sara”,”Garcia”,35,34000) ).toDF(“nombre”, “apellido”,”edad”,”salario”) df.createOrReplaceTempView(“personas”) spark     .sql(       “””select         |count(*) as mayores_de_30         |from personas         |where edad > 30     “””.stripMargin)     .show +—————–+ | mayores_de_30 | +—————–+ | 1|…

Autor: Diego Calvo

Read More »

Spark SQL en Scala

Registrar tabla temporal a partir de dataframe Spark permite la posibilidad de definir “Spark SQL” para poder hacer consultas en formato SQL sobre datos en scala. val df = Seq(   (“id1”, 1,1),   (“id1”, 2,1),   (“id1”, 3,1),   (“id1”, 4,1),   (“id2”, 1,1),   (“id2”, 2,1),   (“id2”, 3,1),   (“id3”, 1,1),  …

Autor: Diego Calvo

Read More »

Cálculos sobre ventana temporal en Dataframe Scala

Cálculo de media móvil en Dataframe Scala Calcula la media móvil a partir de una ventana temporal de 3 periodos import org.apache.spark.sql.expressions.Window import org.apache.spark.sql.functions._ val df = sc.parallelize(    List((“Sensor1”, “2016-05-01”, 50.00),         (“Sensor1”, “2016-05-03”, 45.00),         (“Sensor1”, “2016-05-04”, 55.00),         (“Sensor2”, “2016-05-01”, 25.00),         (“Sensor2”, “2016-05-04”, 29.00),         (“Sensor2”, “2016-05-06”, 27.00))     ).toDF(“sensor”, “fecha”,…

Autor: Diego Calvo

Read More »