遇到 pyspark.sql.utils.AnalysisException:UDF 类未实现任何 UDF 接口

问题描述 投票:0回答:1

我尝试使用 pyspark 中的 Scala udfs 并遇到“pyspark.sql.utils.AnalysisException:UDF 类未实现任何 UDF 接口”错误

我的 scala 代码看起来像这样

package com.spark.udfexample

Object test{
  case class (a: Option[String], b: Option[String])
   
    val foo: StructType = new StructType().add("a", StringType).add("b", StringType)

    def udf1:UserDefinedFunction = udf((param: String, param: Seq[Row])) {
       ...
       ...
    }
    ..
.
}

我将此对象类打包为 jar 并传递到 pyspark 上下文。

spark.udf.registerJavaFunction("udf1", "com.spark.udfexample.test")
- 在这里遇到错误,有人可以帮忙吗?谢谢

scala apache-spark pyspark user-defined-functions
1个回答
0
投票

我建议您查看这篇博客文章,因为它详细说明了您收到该错误的原因。

您的伪代码看起来是 scala udf 的设置,甚至可能使用类状态,而 python 接口正在寻找的是实现 UDFx 接口的无参数公共类。

如果您可以在 scala Spark 中成功注册实际的 scala udf 函数(并使用它),那么您可以在对象中创建一个函数以通过 scala 注册它并在 python 代码中调用它。

© www.soinside.com 2019 - 2024. All rights reserved.