我怎樣做異常處理的星火 - 斯卡拉無效記錄 這裏是我的代碼:如果輸入的數據是好的Apache的火花Scala的異常處理
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")
一切工作正常,如果我沒有足夠的字段,我得到ArrayIndexOutOfBoundException。
我試圖把的try-catch左右,但我不能跳過無效數據的記錄,通過嘗試捕捉
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.
}
}
請讓我知道如何解決與嘗試捕捉的問題,如果有任何更好的解決方案,這也將幫助很多
你想要什麼?跳過太短的行嗎? – Zernike
@ Zernike,感謝您的期待,是的,我需要跳過短行,這會導致索引超出限制的異常。 – user3124284