Взгляните на этот вопрос: Scala + Spark - Задача не сериализуема: java.io.NotSerializableExceptionon. При вызове функции снаружи закрывается только для классов, а не объектов.
Проблема:
Предположим, что мои mappers могут быть функциями (def), которые внутренне вызывают другие классы и создают объекты и делают разные вещи внутри. (Или они могут даже быть классами, которые расширяют (Foo) = > Bar, и выполняют обработку в методе их применения, но пусть теперь игнорируют этот случай)
Spark поддерживает только Java Serialization для закрытий. Есть ли выход из этого? Можем ли мы использовать что-то вместо закрытия, чтобы делать то, что я хочу сделать? Мы можем легко делать такие вещи с Hadoop. Это единственное, что делает Искра почти непригодной для меня. Нельзя ожидать, что все сторонние библиотеки будут иметь все классы, расширяющие Serializable!
Возможные решения:
Кажется, что-то похожее на это: https://github.com/amplab/shark/blob/master/src/main/scala/shark/execution/serialization/KryoSerializationWrapper.scala
Конечно, похоже, что оболочка - это ответ, но я не вижу точно, как это сделать.