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 datos 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 en un Elastic 6.4.2 local en Scala 2.1.1. package com.scala import org.apache.spark.{SparkConf, SparkContext} import org.elasticsearch.spark._ object App { def main(args : Array[String])…

Autor: Diego Calvo

Read More »

Como crear un SparkSession con Scala 2.11 y Maven3

En este post vamos a mostrar la manera de invocar un SparkSession para escribir un fichero en disco mediante hfds. Para ello toma como punto de partida el post Mi primera Apache Spark con Scala con Maven en Intelligent Idea. En el paquete com.fer.cam se crea una Objeto denominado Main y se añade las siguientes…

Read More »

Ejecución distribuida de Spark Scala en IntelliJ Idea mediante SBT

Ejemplo en Scala Spark de multiplicar por dos un vector En este ejemplo se muestran los pasos a seguir para crear un proyecto spark en Scala y ejecutarlo como un trabajo en el sistema distribuido Crear proyecto Entrar en el entorno de desarrollo IntelliJ Idea y crear un nuevo proyecto Scala de tipo SBT Configurar…

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 »

Unir dataframes en Scala

Ejemplo: Unir tablas Unir tablas que tenga el identificador comun val df_personas = 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”) val df_gustos = Seq(   (1,”Rojo”,”Pasta”),   (2,”Amarillo”,”Pizza”),   (3,”Azul”,”Patatas”),   (5,”Rojo”,”Pizza”),   (6,”Negro”,”Pulpo”) ).toDF(“id”, “color”,”comida”) df_personas     .join(df_gustos, “id”)     .select(“nombre”, “edad”, “color”, “comida”)     .show() +——+—-+——–+——-+ |nombre|edad| color| comida|…

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 »