mapreduce中文亂碼,已解決


  問題:

  mapreduce中文亂碼

  原因:

  再用Hadoop處理數據的時候,發現輸出的時候,總是會出現亂碼,這是因為Hadoop在設計編碼的時候,是寫死的。默認是UTF-8,所以當你處理的文件編碼格式不是為UTF-8的時候,比如為GBK格式,那么就會輸出的時候就會出現亂碼。

  問題解決:

  解決問題非常簡單,就是轉碼,確定數據都是以UTF-8的編碼格式在運行。

  在map端從文件中讀取一行數據的時候,把他轉為UTF-8格式。例如:

  我的文件是GBK格式的則:

// 把數據以GBK的格式讀過來 
String line = new String(value.getBytes(),0,value.getLength(),"GBK");

 

  注意:我的value是Text類型的。

  再次運行,查看結果。亂碼問題解決。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM