今天学习了mapreduce中的倒排索引,遇到一个求微博共同关注的题目:
周杰伦:科比,蔡依林,林书豪,林俊杰
姚明:林书豪,詹姆斯,哈登,蔡依林
蔡依林:林俊杰,周杰伦,大S,林书豪
林书豪:詹姆斯,科比,保罗,艾弗森
上述数据格式为:
账号:关注的人
需求:
现在找出哪些人 两两之间有共同关注的人,以及共同关注的人都有谁?
想得到这样的一个结果:
(周杰伦-蔡依林,{林俊杰,林书豪})
**
解题思路:
**
1.根据mapreduce中shuffle阶段根据相同key分组的思想,通过第一个mapreduce求出被关注人的数组
2.再通过第二个mapreduce,对数据进行处理,最终得出我们想要的结果
做题的过程中,思路是比较清晰的,附上代码:
第一个map:
public class ConcernMapper1 extends Mapper&l