У меня есть исключение «Задача не сериализуемая», когда я запускаю программу Spark Scala с
- Spark RDD не имеет сериализуемого типа (класс Java)
- вызываемые функции относятся к несериализуемому классу (опять же класс Java)
мой код примерно такой
object Main{
def main(args : Array(String){
...
var rdd = sc.textFile(filename)
.map(line => new NotSerializableJClass(line)).cache()
//rdd is RDD[NotSerializableJClass]
...
var test = new NotSerializableJPredicate()
rdd = rdd.filter(elem => test.test(elem))
//throws TaskNotSerializable on test Predicate class
}
}
Я заметил, что могу решить вторую часть с помощью
rdd = rdd.filter(elem => (new NotSerializableJPredicate()).test(elem))
но я все еще получаю это исключение для класса объектов в RDD. И я бы по-другому и вторую часть по-другому просто потому, что я не хочу создавать большое количество объектов PredicateClass.
Можете вы помочь мне? Как я могу продвигаться вперед с несериализуемым классом?
NotSerializableJClass
сторонним классом или классом, определенным в вашем приложении? - person himanshuIIITian   schedule 08.04.2017