1
在spark-shell中,我成功地使用了elasticsearch-hadoop連接器(特別是針對spark:elasticsearch-spark-20_2.11-5.1.2開發的連接器)。罐)。調用火花:SparkContext對象沒有屬性esRDD(elasticsearch-spark連接器)
] $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")
它完美的作品。我想和pyspark一樣。我想:
] $SPARK_HOME/bin/pyspark --master local[2] --driver-class-path=/home/pat/spark/jars/elasticsearch-spark-20_2.11-5.1.2.jar
但在Python Shell中,調用esRDD方法是不可能的:
>>> sc.esRDD
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'SparkContext' object has no attribute 'esRDD'
罐子庫加載,因爲此調用工作:
>>> conf = {"es.resource" : "myindex/mytype", "es.nodes" : "localhost"}
>>> rdd = sc.newAPIHadoopRDD("org.elasticsearch.hadoop.mr.EsInputFormat","org.apache.hadoop.io.NullWritable","org.elasticsearch.hadoop.mr.LinkedMapWritable", conf=conf)
是否有人知道如何在pyspark中使用esRDD()?
任何在這些進口的結果:導入錯誤:沒有模塊名爲...請注意,我在python shell中,而不是在scala one(參考你的val rdd命令) – Patrick
在pyspark中,我導入上下文:from pyspark import SparkConf,SparkContext – Patrick
哦,對不起考慮你還有兩個問題,我以爲你在工作python。讓我解決這個 – eliasah