通過 spark.read.csv讀取CSV文件時,遇到 到 ArrayIndexOutOfBoundsException報錯,初步判斷是缺少參數導致,放百度看看,沒找引起問題相關的參數。
第一個看到的可能是null值導致,以前的字段也有空值,但無此問題啊。
另有說是paranamer包太舊與JDK1.8有問題,升級到最新版本可以解決,操作后,發現問題依舊。
再次放百度,沒找到相關的,其中有一個說是內部表與外部表關聯時,如果外部表的字段不一樣,會有這個報錯。那么會不會是文件的問題呢?
刪除文件,只保留幾行,並且都是非Null,重跑可以正常顯示,明顯是文件的問題。
再加多幾條記錄,帶有null,重跑,還是正常,說明不是null值導致的。
不停加記錄然后重跑,最后定位到有問題的那條記錄,文件格式沒問題,那為什么會報錯呢?
這個文件因為是csv,為了方便可以直接使用excel打開,我設置存儲編碼為gbk,會不會是編碼問題?
修改為UTF-8,重跑,問題解決。