我有一个大文本文件(在TB中),每行都有一个时间戳和一些其他数据,如下所示:
timestamp1,data timestamp2,data timestamp5,data timestamp7,data ... timestampN,data
此文件按时间戳排序,但连续时间戳之间可能存在间隙。我需要填补这些空白并写下新文件。
这可以在Hadoop Map Reduce中完成吗?问这个问题的原因是,插入缺失的行我也需要上一行和下一行。对于Eg。要插入timestamp6,我需要timestamp5和timestamp7中的值。那么,如果从timestamp7开始坐在另一个数据块中,那么我将无法计算时间戳。
任何其他算法/解决方案?也许这不能用mapreduce完成?我们可以在RHADOOP中做到这一点吗?
(猪/蜂巢解决方案也有效)
答案 0 :(得分:0)
虽然我的建议有点单调乏味,但也可能影响性能。您可以实现自己的RecordReader,并在当前拆分的所有行的末尾,使用其块位置获取下一个拆分的第一行。我建议这是因为,如果任何映射器的最后一行不完整,hadoop本身就会这样做。希望这会有所帮助!!