【发布时间】:2018-07-09 22:14:24
【问题描述】:
我是 Apache Spark 的新手,我正在尝试从我在其上运行的 scala 脚本加载一些弹性搜索数据。
这是我的脚本:
import org.apache.spark.sql.SparkSession
val sparkSession = SparkSession.builder.appName("Simple Application").getOrCreate()
val options = Map("es.nodes" -> "x.x.x.x:9200", "pushdown" -> "true")
import sparkSession.implicits._
val df = sparkSession.read.format("org.elasticsearch.spark.sql").options(options).load("my_index-07.05.2018/_doc").limit(5).select("SomeField", "AnotherField", "AnotherOne")
df.cache()
df.show()
它可以工作,但是它非常慢。我在这里做错了吗?
连接性根本不是问题,我尝试查询的索引大约有 200k 个文档,但我将查询限制为 5 个结果。
顺便说一句,我必须通过在命令行中将 elasticsearch-hadoop 依赖项作为参数传递来运行 spark-shell(或提交)(--packages org.elasticsearch:elasticsearch-hadoop:6.3.0)。这是正确的方法吗?有没有办法只构建包含所有依赖项的 sbt 包?
非常感谢
【问题讨论】:
-
您找到答案了吗?我在使用 azure databricks 时遇到了同样的问题,即使是大型集群
-
有什么解决方案吗?
标签: scala apache-spark elasticsearch