spark读写ES

直接上代码:

package sparkUtil

import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession
import org.elasticsearch.spark.sql.{EsSparkSQL, SparkDataFrameFunctions}

object SparkES {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf()
    conf.set("es.nodes", "127.0.0.1")
    conf.set("es.port", "9200")
    val sparkSession = SparkSession.builder().master("local[*]").appName("sparkSQLcrudES").config(conf).getOrCreate()

    var json ="""[{"id":"1aa","title":"华为","category":"手机","brand":"华为", "price":"3500", "images":"www.jd.com/123123.jpg"},{"id":"2aaa","title":"华为","category":"手机","brand":"华为", "price":"5800", "images":"www.jd.com/asda.jpg"}]"""
    import sparkSession.implicits._
    var dataset = sparkSession.createDataset(s"$json" :: Nil)
    var df = sparkSession.read.json(dataset)

    /*
     *第一种方式,第一个dataframe 第二个形参格式 _index/_type
     */

    EsSparkSQL.saveToEs(df, "item/docs")
    EsSparkSQL.saveToEs(df, "",
      Map(
        "es.mapping.id" -> "datapool_seq_id"
        , "es.index.auto.create" -> "true"
      )
    )

    /**
      * 第二种,底层还是调方法一
      */
    new SparkDataFrameFunctions(df).saveToEs(
      "index/type",
      Map(
        "es.mapping.id" -> "datapool_seq_id"
        , "es.index.auto.create" -> "true"
        , "es.nodes" -> "127.0.0.1"
        , "es.batch.size.entries" -> "200"
        , "es.port" -> "9200"
      )
    )

    sparkSession.close()
  }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值