我在spark-shell中使用elasticsearch-spark连接器进行了一些实验。调用Spark:
] $SPARK_HOME/bin/spark-shell --master local[2] --jars ~/spark/jars/elasticsearch-spark-20_2.11-5.1.2.jar
在Scala Shell中:
scala> import org.elasticsearch.spark._
scala> val es_rdd = sc.esRDD("myindex/mytype",query="myquery")
它运行良好,结果包含了我查询中指定的好记录。唯一的问题是,即使在查询中只指定了字段的子集,我仍然会得到所有字段。例如:
myquery = """{"query":..., "fields":["a","b"], "size":10}"""
返回所有字段,而不仅仅是a和b(顺便说一下,我注意到size参数也没有被考虑在内:结果包含超过10条记录)。也许重要的是要添加字段是嵌套的,a和b实际上是doc.a和doc.b。
这是连接器中的错误还是我的语法有误?