Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在PySpark并行执行上下文中使用JAR依赖项_Python_Scala_Apache Spark_Pyspark_Databricks - Fatal编程技术网

Python 在PySpark并行执行上下文中使用JAR依赖项

Python 在PySpark并行执行上下文中使用JAR依赖项,python,scala,apache-spark,pyspark,databricks,Python,Scala,Apache Spark,Pyspark,Databricks,这适用于PySpark/Databricks项目: 我编写了一个Scala JAR库,并通过一个简单的Python包装器将其函数公开为UDF;在我的PySpark笔记本中,一切都正常工作。但是,当我尝试在sc.parallelize(..).foreach(..)环境中使用从JAR导入的任何函数时,执行会一直停止,并出现以下错误: TypeError: 'JavaPackage' object is not callable 在包装器中的这一行: jc = get_spark()._jvm.c

这适用于PySpark/Databricks项目:

我编写了一个Scala JAR库,并通过一个简单的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”)
没有帮助。

您可以尝试将jar添加到
PYSPARK\u SUBMIT\u ARGS
环境变量中(在Spark 2.3之前,这也可以通过
Spark\u CLASSPATH
实现)

例如:

os.environ['PYSPARK\u SUBMIT\u ARGS']='--jars PYSPARK shell'