对于MapReduce处理来说,都是处理本机或者服务器里面的文件,源文件的编码可能是gbk或者是其他
但是对于hadoop而言,他将编码给规范死了,就是utf-8,这个时候我么就需要进行编码之间的转换了
具体怎么做呢
加上一下这行代码,
String line = new String(value.getBytes(),0,value.getLength(),“GBK”);
这行代码的就是将你的读进来的数据都用gbk的编码读进来,然后就是在map方法中转化为utf-8的格式,这里需要注意的是你这行代码不仅可以让你得读入是以gbk的形式读进来的,还可以进行转化为String类型的
也就是说你可以省去像是下面那样的代码
String line = value.toString();
如果你同时出现在一起,你照样还是编码出现问题