- 浏览: 26705 次
- 性别:
- 来自: 深圳
最新评论
文章列表
hadoop涉及输出文本的默认输出编码统一用没有BOM的UTF-8的形式,有很多软件只能靠文件的BOM才能成够识别编码为UTF-8的文件,因此当用此类软件打开文件时,显示的是乱码。为了能够正常显示文件内容,在输出内容到文件内之前,先写入BOM(0xEFBBBF)即可。
Map Reduce运行的结果是一些列文件,通过使用如下函数将输出文件归并到一个文件中:
org.apache.hadoop.fs.FileUtil.copyMerge(FileSystem srcFS, Path srcDir, FileSystem dstFS, Path dstFile, boolean del ...
hadoop涉及输出文本的默认输出编码统一用没有BOM的UTF-8的形式,但是对于中文的输出window系统默认的是GBK,有些格式文件例如CSV格式的文件用excel打开输出编码为没有BOM的UTF-8文件时,输出的结果为乱码,只能由UE或者记事本打开才能正常显示。因此将hadoop默认输出编码更改为GBK成为非常常见的需求。
默认的情况下MR主程序中,设定输出编码的设置语句为:job.setOutputFormatClass(TextOutputFormat.class);
TextOutputFormat.class的代码如下:
/**
* Licensed to ...