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

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

猜你喜欢

转载自blog.csdn.net/qq_33286695/article/details/84590748