Задача не сериализуема при переборе данных, scala - PullRequest
0 голосов
/ 26 июня 2019

Ниже приведен мой код, и когда я пытаюсь перебрать каждую строку:

val df: DataFrame = sqlContext.read
  .format("com.databricks.spark.csv")
  .option("header", true) // Use first line of all files as header
  .option("delimiter", TILDE)
  .option("inferSchema", "true") // Automatically infer data types
  .load(fileName._2)

val accGrpCountsIds: DataFrame = df.groupBy("accgrpid").count()
LOGGER.info(s"DataFrame Count - ${accGrpCountsIds.count()}")
accGrpCountsIds.show(3)

//switch based on file names and update the model.
accGrpCountsIds.foreach(accGrpRow => {
  val accGrpId = accGrpRow.getLong(0)
  val rowCount = accGrpRow.getInt(1)
}

Когда я пытаюсь перебрать вышеупомянутый кадр данных с помощью foreach, я получаю ошибку задачи, не сериализуемую. Как я могу это сделать?

1 Ответ

0 голосов
/ 26 июня 2019

У вас есть другие типы в foreach, которыми вы не делитесь?или это все, что вы делаете, и это не работает?

accGrpCountsIds.foreach(accGrpRow => {
  val accGrpId = accGrpRow.getLong(0)
  val rowCount = accGrpRow.getInt(1)
}

Кроме того, вы можете найти это полезным? Задача не сериализуема: java.io.NotSerializableException при вызове функции вне замыкания только для классов, а не для объектов

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