2017-02-04 121 views
1

对于火花外壳命令,我想指定spark.es.query参数文件:语法指定到火花壳的查询文件(elasticsearch火花连接器)

] $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 

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

回答

1

因为火花和ES-连接器预计这就是文件路径为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" 
+1

感谢@eliasah,它可以作为你的预期。 – Patrick

+0

我很高兴它的工作原理@Patrick,你可以检查你的其它问题,请?我留下了评论和回答 – eliasah