我有一个场景,其中有一个非常大的文件,并且说第1行记录可能依赖于第1000行数据,第1行和第1000行可以是单独spilt的一部分。现在我对这个框架的理解是,记录阅读器将返回一个键,值对到Map器,每个k,v对将独立于另一个。此外,由于文件已被分割为多个部分,我也希望这样(即splittable false是没有选择),我可以处理这个无论如何可能正在编写我自己的记录阅读器,Map器或缩小器?
依赖就像-
第1行:a、b、c、d、e、f
第2行:x、y、z、p、q、r
现在第2行中的x需要和第1行中的d一起使用,以获得所需的输出。
谢谢。
1条答案
按热度按时间bybem2ql1#
我认为您需要的是实现减速机侧连接。在这里你可以看到一个更好的解释:http://hadooped.blogspot.mx/2013/09/reduce-side-joins-in-java-map-reduce.html.
两个相关的值必须以同一个缩减器(由键和分区器定义)结尾,并且它们应该分组在一起(groupingcomparator),并且可以使用第二个排序对分组的值进行排序。