pyspark pydeequ约束建议的JavaPackage对象不可调用错误

wtzytmuj  于 2023-02-18  发布在  Spark
关注(0)|答案(1)|浏览(233)

当我尝试在数据块上运行PyDeequ约束建议方法时,收到“JavaPackage对象不可调用”错误。
我试过在Apache Spark 3.1.2集群和Apache Spark 3.0.1集群上运行这段代码,但没有成功。
suggestionResult = ConstraintSuggestionRunner(spark).onData(df).addConstraintRule(DEFAULT()).run()
print(suggestionResult)
有关扩展错误状态,请参阅随附的第二个屏幕截图。
PyDeequ error screenshot
Expanded PyDeequ error screenshot

ckx4rj1h

ckx4rj1h1#

我能够合并一些解决方案found here,以及其他解决方案,以克服上述JavaPackage错误在Azure数据库。这里是详细信息,如果有帮助的人。
我从this link下载了与Spark版本相匹配的JAR文件,在我的例子中是deequ_2_0_1_spark_3_2.jar,然后我使用集群配置中Libraries下的JAR类型安装了这个文件。
然后,以下工作,运行在不同的细胞在一个笔记本电脑。

%pip install pydeequ
%sh export SPARK_VERSION=3.2.1
df = spark.read.load("abfss://container-name@account.dfs.core.windows.net/path/to/data")
from pyspark.sql import SparkSession

import pydeequ

spark = (SparkSession
    .builder
    .getOrCreate())
from pydeequ.analyzers import *

analysisResult = AnalysisRunner(spark) \
                    .onData(df) \
                    .addAnalyzer(Size()) \
                    .addAnalyzer(Completeness("column_name")) \
                    .run()

analysisResult_df = AnalyzerContext.successMetricsAsDataFrame(spark, analysisResult)
analysisResult_df.show()

相关问题