我有一个相当大的文本文件,我想将其转换为SequenceFile。不幸的是,该文件由Python代码组成,逻辑行在几条物理线上运行。例如,
打印“Blah Blah \\
......等等
每条逻辑行都由NEWLINE终止。有人可以澄清我如何在Map-Reduce中生成Key,Value对,其中每个Value是整个逻辑行吗?
答案 0 :(得分:4)
我之前没有找到问题,但您只需通过简单的mapreduce作业迭代您的行,并将它们保存到StringBuilder中。如果要以新记录开头,请将StringBuilder刷新到上下文。诀窍是将mappers类中的StringBuilder设置为字段而不是局部变量。
这里是: Processing paraphragraphs in text files as single records with Hadoop
答案 1 :(得分:1)
您应该在TextInputFormat上创建自己的变体。在那里你创建一个新的RecordReader,跳过行直到它看到逻辑行的开始。
答案 2 :(得分:0)
预处理输入文件以删除换行符。你创建SequenceFile的目标是什么?