【发布时间】:2021-11-01 21:51:22
【问题描述】:
在启动 spark-submit / pyspark 时,我们可以选择使用 --jars 选项指定 jar 文件。我们如何在 pyspark 中指定 maven 依赖项。在运行 pyspark 应用程序时,我们是否必须一直传递所有 jars 或者有更清洁的方法?
【问题讨论】:
标签: maven apache-spark pyspark
在启动 spark-submit / pyspark 时,我们可以选择使用 --jars 选项指定 jar 文件。我们如何在 pyspark 中指定 maven 依赖项。在运行 pyspark 应用程序时,我们是否必须一直传递所有 jars 或者有更清洁的方法?
【问题讨论】:
标签: maven apache-spark pyspark
我发现另一种测试/开发非常实用的方法是在脚本中创建 SparkSession,特别是通过添加 config 选项并以这种方式通过 spark.jars.packages 传递 Maven 包依赖项:
from pyspark.sql import SparkSession
spark = SparkSession.builder.master("local[*]")\
.config('spark.jars.packages', 'groupId:artifactId:version')\
.getOrCreate()
这将自动从 Maven 存储库下载指定的依赖项(对于以逗号分隔的方式指定的多个包依赖项)(因此请仔细检查您的互联网连接)。
同样,here 列出的任何其他 Spark 参数都可以传递给 Spark Session。
完整的 Maven 包列表请参考https://mvnrepository.com/
【讨论】:
根据https://spark.apache.org/docs/latest/submitting-applications.html,可以选择以逗号分隔的Maven坐标列表的形式指定--packages。
./bin/spark-submit --packages my:awesome:package
【讨论】: