Comment puis-je faire la gestion des exceptions dans Spark - Scala pour les enregistrements invalides Voici mon code:Apache étincelle scala Gestion des exceptions
val rawData = sc.textFile(file)
val rowRDD = rawData.map(line => Row.fromSeq(line.split(",")))
val rowRDMapped = rowRDD.map { x => x.get(1), x.get(10) }
val DF = rowRDMapped.toDF("ID", "name")
Tout fonctionne très bien si les données d'entrée est très bien, si je n'ai pas assez de champs , J'obtiens ArrayIndexOutOfBoundException.
Je suis en train de mettre try-catch autour, mais je ne suis pas en mesure de sauter les enregistrements avec des données non valides, par prises try
val rowRDMapped = rowRDD.map { try {
x => x.get(1), x.get(10)
}catch {
println("Invalid Data")
//Here it expects to return ROW, but I am not sure what to do here, since I dont want any data to be returned.
}
}
S'il vous plaît laissez-moi savoir comment résoudre le problème avec des captures d'essai et s'il y a une meilleure solution, ce serait aussi aider beaucoup
Que voulez-vous? Passer les lignes trop courtes? – Zernike
@Zernike, merci de regarder, Oui, j'ai besoin d'ignorer les lignes courtes, ce qui provoque l'exception Index hors limite. – user3124284