我已經用elasticsearch-spark連接器在spark-shell中做了一些實驗。調用火花:用elasticsearch-spark連接器從火花中讀取ES:所有字段都返回
] $SPARK_HOME/bin/spark-shell --master local[2] --jars ~/spark/jars/elasticsearch-spark-20_2.11-5.1.2.jar
在斯卡拉殼:
scala> import org.elasticsearch.spark._
scala> val es_rdd = sc.esRDD("myindex/mytype",query="myquery")
它運作良好,結果包含在更改爲MyQuery指定的良好記錄。唯一的問題是,即使在查詢中指定了這些字段的子集,我也可以獲取所有字段。例如:
myquery = """{"query":..., "fields":["a","b"], "size":10}"""
返回所有字段,不僅a和b(順便說一句,我注意到,尺寸參數不採取在帳戶既不:結果包含超過10個記錄)。也許重要的是添加字段嵌套,a和b實際上是doc.a和doc.b.
它是連接器中的錯誤還是我有錯誤的語法?
它火花和ES連接器的您正在使用的版本? – eliasah
Spark 2.0.1和elasticsearch-spark-20_2.11-5.1.2 – Patrick
好吧給我一分鐘來寫答案 – eliasah