Получить значение из внешней клиентской базы данных для значения столбца в качестве ключа в фреймах данных spark - PullRequest
0 голосов
/ 30 апреля 2019

Я хочу получить значение из другого ресурса базы данных на основе 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, но ошибка все еще сохраняется.

1 Ответ

0 голосов
/ 30 апреля 2019

Попробуйте определить ваш метод как объект:

object testObject extends Serializable {
val method1(key: String) = Database[String,String] {
return dbdetails 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...