#java #apache-spark #databricks #aws-databricks
Вопрос:
У меня возникли проблемы с запуском функций из моего файла jar в Spark на базе данных. Я пытаюсь сделать это с помощью простой тестовой функции, которая принимает целое число и возвращает целое число 5. Однако при попытке зарегистрировать тестовую функцию я получаю следующую ошибку:
java.lang.Исключение TypeNotPresentException: Тип UDF1 отсутствует
Код spark, который я запускаю, это:
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)
Я считаю, что я компилирую и экспортирую Jar в Java 1.8. Если кто-нибудь знает, есть ли какая-то ошибка совместимости между моим кластером и Jar или я неправильно регистрирую UDF, я был бы признателен, если бы вы могли мне помочь.
Комментарии:
1. какая версия Spark используется для компиляции вашей банки?