繁体   English   中英

指定 spark-shell 查询文件的语法(使用 elasticsearch-spark 连接器)

[英]Syntax to specify to spark-shell a query file (with elasticsearch-spark connector)

对于 spark-shell 命令,我想为 spark.es.query 参数指定一个文件:

] $SPARK_HOME/bin/spark-shell --master local[4] 
    --jars ~/spark/jars/elasticsearch-spark-20_2.11-5.1.2.jar 
    --conf spark.es.nodes="localhost" --conf spark.es.resource="myindex/mytype" 
    --conf spark.es.query="/home/pat/spark/myquery.json"

在外壳中:

scala> import org.elasticsearch.spark._
scala> val es_rdd = sc.esRDD("myindex/mytype")
scala> es_rdd.first()

我得到的输出:

17/02/04 07:41:31 ERROR TaskContextImpl: Error in TaskCompletionListener
org.elasticsearch.hadoop.EsHadoopIllegalArgumentException: Cannot determine 
specified query - doesn't appear to be URI or JSON based and location 
[/home/pat/spark/myquery.json] cannot be opened

当然,文件存在于路径上。 这是指定查询文件的好方法吗?

您收到此错误是因为 spark 和 es-connector 期望将文件路径作为 URI 传递:

SPARK_HOME/bin/spark-shell --master local[4] \
 --jars ~/spark/jars/elasticsearch-spark-20_2.11-5.1.2.jar \
 --conf spark.es.nodes="localhost" \
 --conf spark.es.resource="myindex/mytype" \
 --conf spark.es.query="file:///home/pat/spark/myquery.json"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM