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类型的。

  再次运行,查看结果。乱码问题解决。

原文地址:https://www.cnblogs.com/dongxiucai/p/10032851.html