j'ai une exception « Tâche non sérialisable » quand je lance un programme Scala Spark avecSpark programmation Scala pour ne pas les objets sérialisables et fonctions
- Spark RDD est de ne pas le type sérialisable (classe java)
- appelé fonctions sont d'une classe non sérialisable (classe java, encore une fois)
mon code est quelque chose comme ça
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
}
}
Je remarque que je peux résoudre la deuxième partie avec
rdd = rdd.filter(elem => (new NotSerializableJPredicate()).test(elem))
mais je reçois encore cette exception pour la classe des objets RDD. Et je voudrais d'une autre manière aussi la deuxième partie d'une autre manière juste parce que je ne veux pas créer un grand nombre d'objets PredicateClass.
Pouvez-vous m'aider? Comment puis-je aller de l'avant avec une classe non sérialisable?
Est-ce que 'NotSerializableJClass' est une classe tierce ou une classe définie dans votre application? – himanshuIIITian