mapreduce 输出乱码
来源:互联网 发布:淘宝网官方版下载安装 编辑:程序博客网 时间:2024/06/07 05:31
Hadoop处理GBK文本时,发现输出出现了乱码,原来HADOOP在涉及编码时都是写死的UTF-8,如果文件编码格式是其它类型(如GBK),则会出现乱码。
此时只需在mapper或reducer程序中读取Text时,使用transformTextToUTF8(text, "GBK");进行一下转码,以确保都是以UTF-8的编码方式在运行。
String line=new String(text.getBytes(),0,text.getLength(),"GBK"); //这里的value是Text类型
若直接使用 String line=value.toString(); 会输出乱码, 这是由Text这个Writable类型造成的。初学时,一直认为和LongWritable对long的封装一样,Text类型是String的Writable封装。但其实Text和String还是有些区别,它是一种UTF-8格式的Writable,而Java中的String是Unicode字符。所以直接使用value.toString()方法,会默认其中的字符都是UTF-8编码过的,因而原本GBK编码的数据使用Text读入后直接使用该方法就会变成乱码。
0 0
- mapreduce 输出乱码
- mapreduce 输出乱码
- hadoop MapReduce 输出结果中文乱码解决
- 定制mapreduce输出
- MapReduce多文件输出
- MapReduce输出压缩格式文件
- [Hadoop]MapReduce多输出
- MapReduce多种输出格式
- MapReduce之多文件输出
- MapReduce多路径输出
- 设置mapreduce压缩输出
- mapreduce程序reduce输出控制
- mapreduce输出结果到mysql
- mapreduce自动删除输出文件夹
- mapreduce输出结果到mysql
- MapReduce输出结果到多个文件
- mapreduce多路输出实例
- mapreduce输出多文件出错
- maven_项目的依赖、聚合、继承
- linux(ubuntu16.0.04)安装tomcat
- Div宽度是否包含Padding_Border——box-sizing
- android studio实现Jni(C/C++)单步调试方法步骤-标准配置教程
- c++作业三
- mapreduce 输出乱码
- cordova随记
- 【洛谷三月月赛R2】小清新签到题
- 使用Optional来避免空指针
- C++重载运算符
- ubuntu install Java jdk8
- C#对于md5加密的两种方式
- Bootstrap常用表单组件
- unity发布apk如何配置环境