在PySpark并行执行上下文中使用JAR依赖关系

2024-10-01 09:32:46 发布

您现在位置:Python中文网/ 问答频道 /正文

这适用于PySpark/Databricks项目:

我已经编写了一个scalajar库,并通过一个简单的Python包装器将其函数公开为udf;在我的PySpark笔记本中,一切都正常工作。但是,当我尝试在sc.parallelize(..).foreach(..)环境中使用从JAR导入的任何函数时,执行会一直停止,并出现以下错误:

TypeError: 'JavaPackage' object is not callable

在包装器的这一行:

jc = get_spark()._jvm.com.company.package.class.get_udf(function.__name__)

我的怀疑是JAR库在并行化上下文中不可用,因为如果我将库路径替换为一些乱七八糟的内容,错误仍然完全相同。你知道吗

到目前为止,我还没有在Spark文档中找到必要的线索。使用sc.addFile("dbfs:/FileStore/path-to-library.jar")没有帮助。你知道吗


Tags: 项目函数get环境错误笔记本pysparkjar
1条回答
网友
1楼 · 发布于 2024-10-01 09:32:46

您可以尝试在PYSPARK_SUBMIT_ARGS环境变量中添加JAR(在spark2.3之前,SPARK_CLASSPATH也可以这样做)。你知道吗

例如:

os.environ['PYSPARK_SUBMIT_ARGS'] = ' jars <path/to/jar> pyspark-shell'

相关问题 更多 >