使用笔记本时将jar添加到pyspark

Add jar to pyspark when using notebook

我正在尝试将 mongodb hadoop 与 spark 集成,但无法弄清楚如何使 IPython 笔记本可以访问 jars。

这是我正在尝试做的事情:

# set up parameters for reading from MongoDB via Hadoop input format
config = {"mongo.input.uri": "mongodb://localhost:27017/db.collection"}
inputFormatClassName = "com.mongodb.hadoop.MongoInputFormat"

# these values worked but others might as well
keyClassName = "org.apache.hadoop.io.Text"
valueClassName = "org.apache.hadoop.io.MapWritable"

# Do some reading from mongo
items = sc.newAPIHadoopRDD(inputFormatClassName, keyClassName, valueClassName, None, None, config)

当我使用以下命令在 pyspark 中启动此代码时,此代码工作正常:

spark-1.4.1/bin/pyspark --jars 'mongo-hadoop-core-1.4.0.jar,mongo-java-driver-3.0.2.jar'

其中 mongo-hadoop-core-1.4.0.jarmongo-java-driver-2.10.1.jar 允许使用 java 中的 mongodb。但是,当我这样做时:

IPYTHON_OPTS="notebook" spark-1.4.1/bin/pyspark --jars 'mongo-hadoop-core-1.4.0.jar,mongo-java-driver-3.0.2.jar'

罐子不再可用,我收到以下错误:

java.lang.ClassNotFoundException: com.mongodb.hadoop.MongoInputFormat

有谁知道如何让 IPython 笔记本中的 spark 可以使用 jars?我很确定这不是特定于 mongo 所以也许有人在使用笔记本时已经成功地将 jar 添加到类路径?

非常相似,如果这对您有帮助,请告诉我: https://issues.apache.org/jira/browse/SPARK-5185