2016-01-14 34 views
1

我遇到了使用spark-submit運行腳本的問題。主要的腳本將不能運行,因爲import pymongo_spark回報ImportError: No module named pymongo_spark導入pymongo_spark在使用spark-commit執行時不起作用

我檢查this threadthis thread揣摩出來的問題,但至今沒有結果。

我的設置:

$HADOOP_HOME設置爲/usr/local/cellar/hadoop/2.7.1哪裏我的Hadoop文件

$SPARK_HOME設置爲/usr/local/cellar/apache_spark/1.5.2

我也跟着那些線程和引導網上儘可能接近獲得

export PYTHONPATH=$SPARK_HOME/libexec/python:$SPARK_HOME/libexec/python/build:$PYTHONPATH 

export PATH=$PATH:$HADOOP_HOME/bin 

PYTHONPATH=$SPARK_HOME/libexec/python/lib/py4j-0.8.2.1-src.zip:$PYTHONPATH 

然後我用這段代碼在第一個線程我聯繫

from pyspark import SparkContext, SparkConf 
import pymongo_spark 

pymongo_spark.activate() 

def main(): 
    conf = SparkConf().setAppName('pyspark test') 
    sc = SparkContext(conf=conf) 
if __name__ == '__main__': 
    main() 

然後在終端,我所做的:

$SPARK_HOME/bin/spark-submit --jars $HADOOP_HOME/libexec/share/hadoop/mapreduce/mongo-hadoop-r1.4.2-1.4.2.jar --driver-class-path $HADOOP_HOME/libexec/share/hadoop/mapreduce/mongo-hadoop-r1.4.2-1.4.2.jar --master local[4] ~/Documents/pysparktest.py 

哪裏mongo-hadoop-r1.4.2-1.4.2.jar是繼this guide

我肯定缺少的東西,我建的罐子,但我不知道我在哪裏/我失蹤了。我在Mac OSX El Capitan上本地運行一切。幾乎可以肯定,這並不重要,但只是想將其添加在

編輯:

我還用另一個jar文件mongo-hadoop-1.5.0-SNAPSHOT.jar,同樣的問題仍然

我的命令:

$SPARK_HOME/bin/spark-submit --jars $HADOOP_HOME/libexec/share/hadoop/mapreduce/mongo-hadoop-1.5.0-SNAPSHOT.jar --driver-class-path $HADOOP_HOME/libexec/share/hadoop/mapreduce/mongo-hadoop-1.5.0-SNAPSHOT.jar --master local[4] ~/Documents/pysparktest.py 

回答

4

pymongo_spark僅適用於mongo-hadoop 1.5,因此不適用於mongo-hadoop 1.4。爲了使它可用,你必須添加Python包的目錄到PYTHONPATH。如果您自己構建了包,它位於spark/src/main/python/

export PYTHONPATH=$PYTHONPATH:$MONGO_SPARK_SRC/src/main/python 

其中MONGO_SPARK_SRC是帶有Spark連接器源代碼的目錄。

參見Getting Spark, Python, and MongoDB to work together

+0

所以這就是爲什麼.....我得到它的工作(至少導入錯誤現在不顯示)。非常感謝! – JChao