MapReduce 练习案例 4 - 求共同好友
案例 4: 求共同好友
4.1 需求
以下是 qq 的好友列表数据,冒号前是一个用户,冒号后是该用户的所有好友
复制代码
求出哪些人两两之间有共同好友,及他俩的共同好友都有谁?
4.2 思路
1, map 任务: 输入每行数据 key:value, 输出: 拆分好友, 好友做 key, 当前用户做 value;
例如第一行, 输出:key=B: value=A, key=C:value=A, key=D:value=A, key=F:value=A, key=E:value=A, key=O:value=A,
这样经过 shuffle 之后, 相同的好友共同的用户会聚集在一个分组中.
2, reduce 任务: 将用户组内的用户两两组合, 形成: key 好友:用户 1-用户 2 的形式输出
例如: 假设 共同好友 C: 用户组[A, B, E, F, ...], 输出: A-B: C / A-E: C / A-F: C ....
版权声明: 本文为 InfoQ 作者【小马哥】的原创文章。
原文链接:【http://xie.infoq.cn/article/4d6f68c723859723a8bcc756c】。文章转载请联系作者。
评论