将spark 2.x连接到elasticsearch 2.x

pwuypxnk  于 2021-06-02  发布在  Hadoop
关注(0)|答案(3)|浏览(381)

我正在使用spark和elasticsearch,但找不到如何将spark 2.x与elasticsearch 2.x结合使用。elasticsearch spark libs仅支持es2.x的spark 1.6,支持es5.alpha的spark 2。您使用什么将spark连接到elasticsearch?

5m1hhzi4

5m1hhzi41#

请看一下这个。

apache spark支持

apachespark是一个不依赖于map/reduce本身的计算框架,但是它确实与hadoop集成,主要是与hdfs集成。elasticsearch hadoop允许elasticsearch以两种方式在spark中使用:通过2.1以来提供的专用支持,或通过2.0以来的map/reduce桥。从5.0版开始,elasticsearch hadoop就支持spark 2.0
希望有帮助!
在elasticsearch spark错误中也有一个战利品,用户使用的是spark 2.0和elasticsearch的较低版本(spark 2.0.0 elasticsearch spark 2.3.4),并且@crackerman能够解决他的问题(其他问题与版本无关)

j8yoct9x

j8yoct9x2#

我正在使用spark 2.2 read elasticsearch 5.5.2 is work

scalaVersion := "2.11.10"
val spark = "2.2.0"
val es = "5.5.2"
libraryDependencies ++= Seq(
  "org.elasticsearch" % "elasticsearch-spark-20_2.11" % es,
  "org.apache.spark" % "spark-core_2.11" % spark % "provided" ,
  "org.apache.spark" % "spark-sql_2.11" % spark % "provided",
  "org.apache.spark" % "spark-hive_2.11" % spark % "provided"
)
 val sparkSession = SparkSession.builder()
    .config("es.nodes",locahost)
    .config("es.port","9200")
    .appName("ES")
    .master("local[*]")
    .enableHiveSupport()
    .getOrCreate()

   sparkSession.read.format("org.elasticsearch.spark.sql")
  .option("es.query", "?q=id:(123)") 
  .load("es_index/es_type")
lc8prwob

lc8prwob3#

是的,它支持它。
你可以找到 org.elasticsearch 此处为库:https://mvnrepository.com/artifact/org.elasticsearch
https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch-spark-20
另外,要注意匹配相同的scala版本(2.11或2.10)。例如,ambari提供了spark2-scala2.11。

相关问题