Regresión Lineal sobre segmentos de datos en Scala

Ejemplo de regresión lineal sobre segmentos de datos Realiza diferentes regresiones de datos tomando como grupo para segmentar la clave formado por el identificador y el tipo import org.apache.spark.ml.Pipeline import org.apache.spark.ml.feature.VectorAssembler import org.apache.spark.ml.regression.{LinearRegression, LinearRegressionModel} import org.apache.spark.sql.functions._ import org.apache.spark.sql.types.{IntegerType, StructField, StructType, StringType} import org.apache.spark.sql.{DataFrame, Row, SparkSession} import org.apache.spark.{SparkConf, SparkContext} object App{ def lineal_regresion (df: DataFrame) =…

Autor: Diego Calvo

Read More »

Transformar Fecha y hora en Scala

Transformar fecha dada en segundos a tipo Fecha y hora import java.time.{LocalDateTime, ZoneOffset} val offset = ZoneOffset.UTC val mydate = LocalDateTime.ofEpochSecond(1541113018, 0, offset) print(mydate) 2018-11-01T22:56:58 Transformar fecha dada en segundos a tipo Fecha y hora tipo UTC import java.time.{LocalDateTime, ZoneId, ZoneOffset, ZonedDateTime} val dtz = ZoneId.of(“UTC”) val offset = ZoneOffset.UTC val mydate = ZonedDateTime.of(LocalDateTime.ofEpochSecond(1541113018, 0,…

Autor: Diego Calvo

Read More »

Escribir en Elastic remoto con Scala y seguridad Searchguard

Prerequisitos Tener configurado la paquetería de Spark para IntelliJ IDEA Tener un Elastic con Searchguard instalado Incluir en el fichero pon la paquetería propia de Elastic: <!– https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch-spark-20 –> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch-spark-20_2.11</artifactId> <version>6.4.2</version> </dependency>   Ejemplo de como escribir un dataframe transformado a Mapa en un Elastic 5.2.0 local en Scala 2.1.1. package com.scala import…

Autor: Diego Calvo

Read More »

Escribir dataframe en Elastic con Scala

Prerequisitos Tener configurado la paquetería de Spark para IntelliJ IDEA Incluir en el fichero pon la paquetería propia de Elastic: <!– https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch-spark-20 –> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch-spark-20_2.11</artifactId> <version>6.4.2</version> </dependency>   Ejemplo de como escribir un dataframe transformado a Mapa en un Elastic 6.4.2 local en Scala 2.1.1. package com.scala import org.apache.spark.sql.SparkSession import org.apache.spark.{SparkConf, SparkContext} import org.elasticsearch.spark._…

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 »