Ich versuche, das DateTimeFormatter von java.time.format in Spark zu verwenden, aber es scheint nicht serialisierbar zu sein. Dies ist der relevante Teil des Codes:Spark und nicht serialisierbar DateTimeFormatter
val pattern = "<some pattern>".r
val dtFormatter = DateTimeFormatter.ofPattern("<some non-ISO pattern>")
val logs = sc.wholeTextFiles(path)
val entries = logs.flatMap(fileContent => {
val file = fileContent._1
val content = fileContent._2
content.split("\\r?\\n").map(line => line match {
case pattern(dt, ev, seq) => Some(LogEntry(LocalDateTime.parse(dt, dtFormatter), ev, seq.toInt))
case _ => logger.error(s"Cannot parse $file: $line"); None
})
})
Wie kann ich die java.io.NotSerializableException: java.time.format.DateTimeFormatter
Ausnahme vermeiden? Gibt es eine bessere Bibliothek zum Analysieren von Zeitstempeln? Ich habe gelesen, dass Joda auch nicht serialisierbar ist und in die Zeitbibliothek von Java 8 aufgenommen wurde.