Задача не сериализуется при использовании функции с картой в Spark (Scala) - PullRequest
2 голосов
/ 11 марта 2019

Еще один вопрос «задача не сериализуема». Извините, новичок в Scala и Spark, так немного изо всех сил ...

Итак, у меня есть объект с методом

object transformations {

  def someMethod()(df: DataFrame): DataFrame = {

      df.as[SomeCaseClass]
         .map(x => AnotherCaseClass(x.col1, x.col2, x.col3, x.col4.map(
          y => YetAnotherCaseClass(y.a.toString + '_' + y.b, y.c, y.d))
        )
        .toDF

  } 
}

и я хотел бы вывести манипуляции со строкой наружу, чтобы ее можно было использовать повторно Так что, если я сделаю что-то вроде этого:

object transformations {

  def manipulateString()(a: Int, b: String): String = {
    return a.toString + '_' + b
  } 

  def someMethod()(df: DataFrame): DataFrame = {

      df.as[SomeCaseClass]
         .map(x => AnotherCaseClass(x.col1, x.col2, x.col3, x.col4.map(
          y => YetAnotherCaseClass(transformations.manipulateString(y.a, y.b), y.c, y.d))
        )
        .toDF

  } 
}

Я получаю задачу, не сериализуемую ошибку.

Как правильно это сделать?

Спасибо!

1 Ответ

0 голосов
/ 12 марта 2019

Проблема была в преобразовании .manipulateString. Надо просто манипулироватьString

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...