मैं स्पार्क में java.time.format से डेटटाइमफॉर्मेटर का उपयोग करने की कोशिश कर रहा हूं लेकिन ऐसा लगता है कि यह क्रमिक नहीं है। इस कोड के प्रासंगिक हिस्सा है:स्पार्क और नहीं सीरियलज़ेबल डेटटाइमफॉर्मर
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
})
})
मैं java.io.NotSerializableException: java.time.format.DateTimeFormatter
अपवाद कैसे बच सकते हैं? टाइमस्टैम्प पार्स करने के लिए एक बेहतर पुस्तकालय है? मैंने पढ़ा है कि जोडा भी धारावाहिक नहीं है और जावा 8 की टाइम लाइब्रेरी में शामिल किया गया है।