Я пытаюсь понять, как работает сериализация в случае самостоятельно сконструированного класса case и анализатора в отдельном объекте - и у меня не получается.
Я пытался свести проблему к:
- разбора строки на классы дел
- построение СДР из этих
- берет первый элемент для его печати
case class article(title: String, text: String) extends Serializable {
override def toString = title + s"/" + text
}
object parser {
def parse(line: String): article = {
val subs = "</end>"
val i = line.indexOf(subs)
val title = line.substring(6, i)
val text = line.substring(i + subs.length, line.length)
article(title, text)
}
}
val text = """"<beg>Title1</end>Text 1"
"<beg>Title2</end>Text 2"
"""
val lines = text.split('\n')
val res = lines.map( line => parser.parse(line) )
val rdd = sc.parallelize(res)
rdd.take(1).map( println )
Я получаю
Job aborted due to stage failure: Failed to serialize task, not attempting to retry it. Exception during serialization: java.io.NotSerializableException
Может ли одаренный эксперт по Scala помочь мне - просто я понимаю взаимодействие сериализации в работниках и мастере - как исправить взаимодействие анализатора и статьи таким образом, чтобы сериализация работала?
Большое спасибо.