2017-02-04 72 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