自动将jar包含到PySpark类路径中

时间:2015-07-16 21:28:47

标签: apache-spark ipython ipython-notebook pyspark

我正在尝试自动将jar包含到我的PySpark类路径中。现在我可以输入以下命令,它可以工作:

$ pyspark --jars /path/to/my.jar

我希望默认包含该jar,以便我只能输入pyspark并在IPython Notebook中使用它。

我读过我可以通过在env中设置PYSPARK_SUBMIT_ARGS来包含参数:

export PYSPARK_SUBMIT_ARGS="--jars /path/to/my.jar"

不幸的是,上述方法无效。我收到运行时错误Failed to load class for data source

运行Spark 1.3.1。

修改

使用IPython Notebook时的解决方法如下:

$ IPYTHON_OPTS="notebook" pyspark --jars /path/to/my.jar

3 个答案:

答案 0 :(得分:14)

您可以在 spark-defaults.conf 文件中添加jar文件(位于spark安装的conf文件夹中)。如果罐子列表中有多个条目,请使用:as separator。

spark.driver.extraClassPath /path/to/my.jar

此属性记录在https://spark.apache.org/docs/1.3.1/configuration.html#runtime-environment

答案 1 :(得分:9)

据我所知,您必须将jar导入驱动程序 AND 执行程序。因此,您需要修改conf/spark-defaults.conf以下两行。

spark.driver.extraClassPath /path/to/my.jar
spark.executor.extraClassPath /path/to/my.jar

当我经历这个时,我不需要任何其他参数。我想你也不需要它们。

答案 2 :(得分:0)

自使用Spark 2.0+以来的推荐方式 spark.driver.extraLibraryPathspark.executor.extraLibraryPath

https://spark.apache.org/docs/2.4.3/configuration.html#runtime-environment

ps。 spark.driver.extraClassPathspark.executor.extraClassPath仍然在那里, 但已弃用,并将在以后的Spark版本中删除。