自动将 jar 包含到 PySpark 类路径

Automatically including jars to PySpark classpath

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

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

我希望默认包含该 jar,这样我就只能键入 pyspark 并在 IPython 笔记本中使用它。

我读到我可以通过在 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

您可以将 jar 文件添加到 spark-defaults.conf 文件(位于 spark 安装的 conf 文件夹中)。如果 jars 列表中有多个条目,请使用 : 作为分隔符。

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

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

据我所知,您必须将 jar 导入驱动程序 A​​ND 执行程序。因此,您需要编辑 conf/spark-defaults.conf 在下面添加两行。

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

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

自 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 版本中删除。