数据中的每一行都采用以下格式:
用户名,性别,年龄
我们需要回答以下两个问题:
1)多少个男性和几个女性。
2)超过50年的有多少和低于50年的有多少。
有没有办法在单个Map Reduce作业中回答这两个问题?我知道我可以轻松地在2个单独的MR作业中执行此操作,但想避免两次读取同一文件。我只能在一项MR工作中怎么做?
最佳答案
在映射阶段,您可以为每个记录输出2个键:
在减少阶段将计数1作为值和总和,这将为您提供要寻找的4个值,或者输出带有组合信息的1个键:
在减少阶段将计数1相加,得出4个组合值,您可以通过添加计数对来获得所需的答案。
关于hadoop - MapReduce设计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12381609/