如何在MapReduce中处理一个记录依赖于另一个记录的大文件



我有一个场景,其中有一个非常大的文件,并且说第1行记录可能依赖于第1000行数据,第1行和第1000行可以是单独拆分的一部分。现在我对这个框架的理解是记录读取器会返回一个键值对给映射器每个k v对都是相互独立的。此外,由于文件已被划分为分裂,我想要的,以及(即分裂假是没有选项),我可以处理这个无论如何可能是写我自己的记录阅读器,映射器或减速器?

依赖性类似于-

第一行:a, b, c, d, e, f

Row2: x, y, z, p, q, r

现在需要将Row2中的x与Row1中的d一起使用,以获得我想要的输出。

谢谢。

我认为你需要的是实现一个减速器侧连接。这里你可以看到一个更好的解释:http://hadooped.blogspot.mx/2013/09/reduce-side-joins-in-java-map-reduce.html.

两个相关的值必须在相同的reducer(由key和Partitioner定义)中结束,并且它们应该分组在一起(GroupingComparator),并且可以使用SecondSort对分组值进行排序。

相关内容

  • 没有找到相关文章

最新更新