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 »

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| +—+—–+———-+…

Autor: Diego Calvo

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…

Autor: Diego Calvo

Read More »

Conectar con Scala al HDFS de Hadoop

Escribir datos en HDFS Ejemplo de como escribir datos RDD en un HDFS de Hadoop. // Borrar el fichero si es que existe import scala.sys.process._ “hdfs dfs -rm -r /pruebas” ! // Grabar un RDD en HDFS val rdd = sc.parallelize(List(     (0, 60),     (0, 56),     (0, 54),     (0, 62),     (0,…

Autor: Diego Calvo

Read More »

DataFrames en Scala

Crear DataFrames Ejemplo de como crear un dataframe en Scala. import org.apache.spark.sql.types.{StructType, StructField, StringType, IntegerType}; val data = List( Row(“Paco”,”Garcia”,24,24000), Row(“Juan”,”Garcia”,26,27000), Row(“Lola”,”Martin”,29,31000), Row(“Sara”,”Garcia”,35,34000) ) val rdd = sc.parallelize(data) val schema = StructType( List( StructField(“nombre”, StringType, nullable=false), StructField(“apellido”, StringType, nullable=false), StructField(“edad”, IntegerType), StructField(“salario”, IntegerType) ) ) val df = spark.createDataFrame(rdd,schema) df.printSchema() df.show() root |– nombre: string…

Autor: Diego Calvo

Read More »

Estructuras de datos en Scala

 RDD (Resilient Distributed Dataset) Datos no estructurados, ejemplo: binarios, text streaming. Utiliza acciones y transformaciones de bajo nivel No soporta serialización Encoders. No de un esquema ni formato de columna. Proporciona serguridad de tipo en tiempo de compilación.   DataFrames – DataFrames Datos estructurados (entradas RDBMS) o semi-estructurados (json, csv) Necesita ejecutar consultas hive Mayor rendimiento…

Autor: Diego Calvo

Read More »

Unificar categorías de dataframe en R

Unificar categorias sustituyendo por elementos de un conjunto # Ampliar el conjunto de datos datos$sexo <- c(“masculino”,”h”, “hombre”, “h”,”mujer”,”femenino”, “mujer”, “m”) # Ver que valores toma la variable unique(datos$sexo) ## [1] “masculino” “h” “hombre” “mujer” “femenino” “m” # Definir los nombres que pueden aparecer en el cojunto de datos nombres.hombre <- c(“masculino”, “hombre”, “h”) nombres.mujer…

Autor: Diego Calvo

Read More »

Eliminar duplicados de dataframes en R

Se muestran diferentes formas en R de como eliminar duplicados en un dataframe definido inicialmente. Cargar datos para ejemplos id <- c(1,2,3,1,2,3) texto <- c(“a”, “b”, “c”,”a”,”x”,”x”) datos <- data.frame(id=id,texto=texto) head(datos) # id texto # 1 1 a # 2 2 b # 3 3 c # 4 1 a # 5 2 x #…

Autor: Diego Calvo

Read More »