2017-02-12 140 views
1

分隔文本文件當我在20萬線的文件嘗試分析txt文件我有這樣的錯誤:解析斯卡拉

java.nio.charset.UnmappableCharacterException: Input length = 1

我遇到錯誤我的程序中斷後:

val bufferedSource = io.Source.fromFile(path) 
for (line <- bufferedSource.getLines.drop(1)) { 
    line.split('|').toList.drop(1) 
    } 

如果我沒有理解正確的,錯誤是in io.Source.fromFile(path)。 我如何跳過壞行?

+2

的可能的複製[如何在斯卡拉2.8.0解決java.nio.charset.UnmappableCharacterException?](HTTP:/ /stackoverflow.com/questions/1757272/how-to-resolve-java-nio-charset-unmappablecharacterexception-in-scala-2-8-0) – Simon

+0

我有這個錯誤不在第一行。我在200k行有錯誤 –

+0

它似乎仍然是一個字符編碼問題。要麼你需要處理非ascii字符或確保你的文件只有acii值。 – Simon

回答

1

不幸的是,你必須自己處理編碼問題。 其中一個2個編碼的經常爲我工作:

val bufferedSource = io.Source.fromFile(path, enc = Codec.UTF8.name) 
for (line <- bufferedSource.getLines.drop(1)) { 
    line.split('|').toList.drop(1) 
    } 

val bufferedSource = io.Source.fromFile(path, enc = Codec.ISO8859.name)