0

我在 Databricks 上的 Spark 中运行我的 jar 文件中的函数时遇到问题。我正在尝试使用一个简单的测试函数来执行此操作,该函数接受一个整数并返回整数 + 5。但是,当我尝试注册测试函数时,出现以下错误:

java.lang.TypeNotPresentException:类型 UDF1 不存在

我正在运行的火花代码是:

import pyspark
from pyspark.sql import SparkSession
from pyspark.sql.types import LongType
from pyspark import SparkContext


spark.udf.registerJavaFunction("numAdd", "com.JavaUDFProj.AddNumber", LongType())

我试图运行的java函数是这样的:

package com.JavaUDFProj;
import org.apache.spark.sql.api.java.UDF1;
public class AddNumber implements UDF1<Long, Long> {
private static final long serialVersionUID = 1L;
@Override
public Long call(Long num) throws Exception {
return (num + 5);
   }
}

我怀疑这可能是版本错误,但我不确定要更改什么。我的 Databricks 运行时版本是:

8.3(包括 Apache Spark 3.1.1、Scala 2.12)

我相信我正在用 Java 1.8 编译和导出 Jar。如果有人知道我的集群和 Jar 之间是否存在兼容性错误,或者我注册的 UDF 错误,如果您能帮助我,我将不胜感激。

4

0 回答 0