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…

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…

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…

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…

Read More »

Ordenar elementos con SQL Spark en Scala

Ejemplo: Ordenar elementos Ordena personas por nombre. 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         | nombre, apellido         | from personas         | order by nombre     «»».stripMargin)     .show +——+——–+ |nombre|apellido| +——+——–+ | Juan| Garcia| | Lola| Martin| | Paco|…

Read More »

Agrupar elementos con SQL Spark en Scala

Ejemplo: Agrupar elementos Contar el número de personas que comparten el mismo apellido. 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         | apellido, count(*) as num_iguales         | from personas         | group by apellido     «»».stripMargin)     .show +——–+———–+ |apellido|num_iguales| +——–+———–+…

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|…

Read More »

Añadir columna en Dataframe en Scala

Añadir columna de unos Se suele añadir una coñumna de unos para en posteriores operaciones de reduce realizar recuentos por agrupación. val df = Seq( («id1», 1), («id1», 2), («id1», 3), («id1», 4), («id2», 1), («id2», 2), («id2», 3), («id3», 1), («id3», 2) ).toDF(«id», «valor») val df_plus = df.withColumn(«new_column», lit(1)) df_plus.show() +—+—–+———-+ | id|valor|new_column| +—+—–+———-+…

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»,…

Read More »

Filtrar DataFrame en Scala

Filtrar de datos con like Ejemplo que realiza un filtrado para seleccionar las personas que su apellido contiene «Garc» y cuya edad es menor de 30. val df = sc.parallelize(Seq( («Paco»,»Garcia»,24,24000,»2018-08-06 00:00:00″), («Juan»,»Garcia»,26,27000,»2018-08-07 00:00:00″), («Ana», «Martin»,28,28000,»2018-08-14 00:00:00″), («Lola»,»Martin»,29,31000,»2018-08-18 00:00:00″), («Sara»,»Garcia»,35,34000,»2018-08-20 00:00:00″) )).toDF(«nombre»,»apellido»,»edad»,»salario»,»fecha_reg») val type_df = df.select($»nombre»,$»apellido»,$»edad»,$»salario», unix_timestamp($»fecha_reg», «yyyy-MM-dd HH:mm:ss»).cast(TimestampType).as(«timestamp»)) type_df.show() val filter_df = type_df.filter(«apellido like…

Read More »