Я хочу получить значение из другого ресурса базы данных на основе Java для данного значения столбца.
Я следовал описанному ниже процессу
//sample method
object testObject extends Serializable {
def method1(key: String) = Database[String,String] {
return dbdetails
}
val data : Database[String,String] = method1.testObject(x)
val getUdf = udf((value: String) => data.get(value))
val resultingDF = df.withColumn("test", lit(getUdf(col("value"))))
. Говорят, если при получении из базы данных возвращается строковое значение "abc", я ожидаю, что оно будет сохранено в кадре данных.Но он вызывает ошибку при вызове UDF, как показано ниже.
Caused by: java.lang.RuntimeException: org.apache.spark.SparkException: Task not serializable.
Я пытался использовать extends Serializable, но ошибка все еще сохраняется.