Я работаю со Spark и ElasticSearch и не могу найти, как использовать Spark 2.X с ElasticSearch 2.x. Библиотеки ElasticSearch Spark поддерживают только Spark 1.6 для ES 2.X и Spark 2 для ES 5.alpha Что вы используете для подключения Spark к ElasticSearch?
Подключите Spark 2.X к ElasticSearch 2.X
Ответы (3)
Пожалуйста, взгляните на это.
Поддержка Apache Spark
Apache Spark - это вычислительная среда, которая не привязана к самой Map / Reduce, но интегрируется с Hadoop, в основном с HDFS. elasticsearch-hadoop позволяет использовать Elasticsearch в Spark двумя способами: через выделенную поддержку, доступную с версии 2.1, или через мост Map / Reduce, начиная с версии 2.0. Spark 2.0 поддерживается в elasticsearch-hadoop с версии 5.0
Надеюсь, это поможет!
Также есть добыча в ElasticSearch Spark Error, где пользователь использует Spark 2.0 с более ранней версией (Spark 2.0.0 ElasticSearch-Spark 2.3.4) эластичного поиска, и @Crackerman смог решить свою проблему (другая проблема, не связанная с версией)
Да, поддерживает.
Вы можете найти org.elasticsearch
библиотеки здесь: https://mvnrepository.com/artifact/org.elasticsearch
https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch-spark-20
Также позаботьтесь о том, чтобы соответствовать той же версии scala (2.11 или 2.10). Например, Ambari предоставляет Spark2 - scala 2.11.
я использую искру 2.2 читать elasticsearch 5.5.2 работает
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")