我正在hadoopmapreduce(java)中实现reduce-side-join,为此我使用了多个输入,例如有两个文件customers和orders,我加入它们时考虑了cid(customer\u id)。我的问题:在上面的程序中,如果我写combiner类,它将如何工作,据我所知,combiner是Map器级别的聚合器,但是在这种情况下,我们有两个Map器逻辑。合并器逻辑会应用于两个Map器逻辑吗有没有什么方法可以将组合器逻辑应用于任何一个Map器逻辑
yiytaume1#
组合器聚合Map器输出,您可以用任何您认为更好的代码覆盖它。combiner被称为mini reducer并继承reducer类。记住,combiner并不能保证在所有情况下都能运行,所以Map器输出应该始终足以作为reducer输入。我不明白你的问题,不管你的Map器输入是什么,Map器输出将是一些关键值数据。combiner只是聚合或简单地相加,假设Map器输出为:
{'ali':2, 'jack':4, 'ali':3}
合并后的输出将是:
{'ali':5, 'jack':4}
1条答案
按热度按时间yiytaume1#
组合器聚合Map器输出,您可以用任何您认为更好的代码覆盖它。combiner被称为mini reducer并继承reducer类。
记住,combiner并不能保证在所有情况下都能运行,所以Map器输出应该始终足以作为reducer输入。
我不明白你的问题,不管你的Map器输入是什么,Map器输出将是一些关键值数据。combiner只是聚合或简单地相加,假设Map器输出为:
合并后的输出将是: