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]) {

    val conf = new SparkConf()
      .setAppName("App")
      .setMaster("local")
      .set("es.nodes", "localhost")
      .set("es.port", "9200")
      .set("es.scheme", "http")


    val m1 = Map("grupo" -> "A", "timestamp" -> 1540550120, "duration" -> 6)
    val m2 = Map("grupo" -> "B", "timestamp" -> 1540550130, "duration" -> 10)
    val m3 = Map("grupo" -> "A", "timestamp" -> 1540550140, "duration" -> 13)
    val m4 = Map("grupo" -> "B", "timestamp" -> 1540550150, "duration" -> 18)
    val m5 = Map("grupo" -> "C", "timestamp" -> 1540550160, "duration" -> 6)
    val m6 = Map("grupo" -> "B", "timestamp" -> 1540550170, "duration" -> 10)
    val m7 = Map("grupo" -> "A", "timestamp" -> 1540550180, "duration" -> 13)
    val m8 = Map("grupo" -> "C", "timestamp" -> 1540550190, "duration" -> 18)


    val sc = new SparkContext(conf)
    sc.makeRDD(Seq(m1,m2,m3,m4,m5,m6,m7,m8)).saveToEs("elastic_list/docs")

  }
}

Comprobar datos escritos en Elastic

Mostrar todos los indices almacenados en Elastic

Linea de comandos:

curl --insecure 'http://localhost:9200/_cat/indices?v'

Navegador Web:

http://localhost:9200/_cat/indices?v

 

Mostrar datos del índice “elastic_list” en concreto

Linea de comandos:

curl --insecure -H 'Content-Type: application/json' -X GET 'http://localhost:9200/elastic_list/_search?pretty=true&q=*'

Navegador Web:

http://localhost:9200/elastic_list/_search?pretty=true&q=*
Ejemplo indice elastic

Ejemplo indice elastic

Otros artículos que pueden ser de interés:

Autor: Diego Calvo