如何拓展Hadoop的InputFormat为其他分隔符
来源:互联网 发布:description软件 编辑:程序博客网 时间:2024/05/23 00:04
在Hadoop中,常用的TextInputFormat是以换行符作为Record分隔符的。
在实际应用中,我们经常会出现一条Record中包含多行的情况,例如:
此时,需要拓展TextInputFormat以完成这个功能。
先来看一下原始实现:
根据上面的代码, 不难发现,换行符实际上是由”textinputformat.record.delimiter”这个配置决定的。
所以我们有种解决方案:
(1) 在Job中直接配置textinputformat.record.delimiter为”</doc>\n”,这种方案是比较Hack的,很容易影响到其他代码的正常执行。
(2) 继承TextInputFormat,在return LineRecordReader时,使用自定义的分隔符。
本文采用第二种方案,代码如下:
需要指出的是,InputFormat只是把原始HDFS文件分割成String的记录,如果你的<doc> </doc>内有其他结构化数据,那么需要在map中自己实现deserilize的相关业务逻辑来处理。
0 0
- 如何拓展Hadoop的InputFormat为其他分隔符
- 自定义hadoop map/reduce输入文件切割InputFormat 更改输入value的分隔符
- 自定义hadoop map/reduce输入文件切割InputFormat 更改输入value的分隔符
- 自定义hadoop的inputformat
- 自定义hadoop的InputFormat
- Hadoop InputFormat浅析--hadoop如何分配输入
- 关于Hadoop的InputFormat类
- 关于Hadoop的InputFormat类
- Hadoop的InputFormat和OutputFormat
- hadoop的InputFormat简单demo
- Hadoop InputFormat定制时必须知道的原理---如何划分split,split如何调度,如何读取
- hadoop 之 MultipleInputs--为多个输入指定不同的InputFormat和Mapper
- 前台js如何限定用户只能用逗号分隔,不能用其他的分隔
- Hadoop开发常用的InputFormat和OutputFormat
- Hadoop开发常用的InputFormat和OutputFormat
- Hadoop开发常用的InputFormat和OutputFormat
- Hadoop开发常用的InputFormat和OutputFormat
- Hadoop中常用的InputFormat,OutPutFormat类
- jquery修改css样式
- vim的一个较全的介绍(转)
- 马云:企业家要去听经济学家 企业已经死了一半
- JAVA类加载器
- 现有几个开源IM框架
- 如何拓展Hadoop的InputFormat为其他分隔符
- Android canvas用法介绍之save()和restore()
- AtomicBoolean
- Struts2 中的值栈的理解
- sql/hql对比
- 阿里数据库连接池druid连接Oracle 11g R2报错:not support oracle driver 1.0
- spring配置ehchace缓存
- 如何访问虚拟机中的架设的Web服务器(解决方法)
- spring集成jedis