我有一个场景,其中有一个非常大的文件,并说第1行记录可能依赖于第1000行数据,第1行和第1000行可以是单独的spilts的一部分。现在我对该框架的理解是,记录阅读器将向映射器返回一个键值对,并且每个k,v对将独立于另一个。此外,由于文件已被分为分裂,我也想要(即splittable false是没有选项),我能处理这个,无论如何可能会写我自己的记录阅读器,映射器或减速器吗?
依赖就像 -
第1行:a,b,c,d,e,f
第2行:x,y,z,p,q,r
现在,Row2中的x需要与Row1中的d一起使用才能得到我想要的输出。
感谢。
答案 0 :(得分:0)
我认为您需要实现 reducer side join 。在这里,您可以看到更好的解释:http://hadooped.blogspot.mx/2013/09/reduce-side-joins-in-java-map-reduce.html。
两个相关值必须以相同的reducer(由键和 Partitioner 定义)结束,并且它们应该组合在一起( GroupingComparator )并且可以使用 SecondSort 可以对分组值进行排序。