Я использую IntelliJ IDEA для выполнения кода, показанного ниже. Содержание df
следующее:
+------+------+
|nodeId| p_i|
+------+------+
| 26|0.6914|
| 29|0.6914|
| 474| 0.0|
| 65|0.4898|
| 191|0.4445|
| 418|0.4445|
Я получаю ошибку сериализации задачи в строке result.show()
при запуске этого кода:
class MyUtils extends Serializable {
def calculate(spark: SparkSession,
df: DataFrame): DataFrame = {
def myFunc(a: Double): String = {
var result: String = "-"
if (a > 1) {
result = "A"
}
return result
}
val myFuncUdf = udf(myFunc _)
val result = df.withColumn("role", myFuncUdf(df("a")))
result.show()
result
}
}
Почему я получаю эту ошибку?
Обновление:
Вот как я запускаю код:
object Processor extends App {
// ...
val mu = new MyUtils()
var result = mu.calculate(spark, df)
}