Hadoop字符转码的实现
来源:互联网 发布:业余开淘宝店能赚钱吗 编辑:程序博客网 时间:2024/05/16 12:29
Hadoop默认使用的是UTF-8编码方式。在Hadoop使用过程中,需要将其他的编码方式进行转码以防止乱码的出现。
在Hadoop中出现乱码的情景是TextFileInputFormat,即处理Text的情景。在这种情况下,Value一般是Text。为了实现转码我们看一下Text的实现。在Text中包含了源数据的byte数组以及其中数据的长度,这是原始数据,不经过编码的。在Text类中包含了CharsetEncoder和CharsetDecoder两个变量,这两个变量都是UTF-8编码。当把byte数据写到文件时(writeString方法)需要对其进行Encode,将其编码成UTF-8格式。当Text读入数据时(readString方法),用Decoder将其从UTF-8模式转码成Unicode。
在Map执行过程中,Text的byte数组是原始数据的byte数组,可以直接将该数组进行转码,具体实现如下:
protected void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException {
byte[] valueBytes = value.getBytes();
String result = new String(valueBytes, "GB2312");
context.write(key, new Text(result));
}
- Hadoop字符转码的实现
- Hadoop字符转码的实现
- Hadoop的基本使用(3)——MapReduce的基本操作(实现字符统计)
- hadoop writable的实现
- Hadoop的RPC实现
- Hadoop的HA实现
- Hadoop的WordCount实现
- Hadoop的RPC实现
- hadoop的分组实现
- 字符转Unicode的一种实现方法
- 实现图片转字符
- FP-tree的hadoop实现
- Hadoop 实现WritableComparable的类
- Hadoop的Text类型实现
- hadoop的RPC实例实现
- linux 字符驱动的实现
- 简单实现字符的验证
- 一些字符函数的实现。
- js验证
- win7访问linux samba服务器共享解决方法
- C1.Win.C1FlexGrid控件使用
- Linux之:ls -l 列表信息详解及扩展阅读
- PropertyUtils.describe(this);
- Hadoop字符转码的实现
- google svn
- sqlserver: 范围分组查询(group by, case)
- Oracle基础知识-SQL简单命令
- java破解ip屏蔽+多线程同步
- 【svn】教程
- 手机用户体验测试点
- vim配置文件
- QT常见错误二