Hadoop自定义分割TextFile

时间:2011-06-13 06:34:11

标签: hadoop

我有一个相当大的文本文件,我想将其转换为SequenceFile。不幸的是,该文件由Python代码组成,逻辑行在几条物理线上运行。例如,
打印“Blah Blah \\ ......等等 每条逻辑行都由NEWLINE终止。有人可以澄清我如何在Map-Reduce中生成Key,Value对,其中每个Value是整个逻辑行吗?

3 个答案:

答案 0 :(得分:4)

我之前没有找到问题,但您只需通过简单的mapreduce作业迭代您的行,并将它们保存到StringBuilder中。如果要以新记录开头,请将StringBuilder刷新到上下文。诀窍是将mappers类中的StringBuilder设置为字段而不是局部变量。

这里是: Processing paraphragraphs in text files as single records with Hadoop

答案 1 :(得分:1)

您应该在TextInputFormat上创建自己的变体。在那里你创建一个新的RecordReader,跳过行直到它看到逻辑行的开始。

答案 2 :(得分:0)

预处理输入文件以删除换行符。你创建SequenceFile的目标是什么?