一、需求
以下是博客的粉丝列表数据,冒号前是一个用户,冒号后是该用户的所有粉丝(数据中的好友关系是单向的)
求出哪些人两两之间有共同粉丝,及他俩的共同粉丝都有谁?
A:B,C,D,F,E,O
B:A,C,E,K
C:F,A,D,I
D:A,E,F,L
E:B,C,D,M,L
F:A,B,C,D,E,O,M
G:A,C,D,E,F
H:A,C,D,E,O
I:A,O
J:B,O
K:A,C,D
L:D,E,F
M:E,F,G
O:A,H,I,J
二、思路
可以分成两步实现,第一步将博主有多少粉丝的数据转化成粉丝关注了多少博主,输出为:
A I,K,C,B,G,F,H,O,D,
B A,F,J,E,
C A,E,B,H,F,G,K,
D G,C,K,A,L,F,E,H,
E G,M,L,H,A,F,B,D,
F L,M,D,C,G,A,
G M,
H O,
I O,C,
J O,
K B,
L D,E,
M E,F,
O A,H,I,J,F,
可以看到,前面的是粉丝,后面是他关注的博主,可以将粉丝关注的博主进行排序,然后两两配对,转化为
A-B E
A-B C
样式输出,到了reducer就可以将后面的部分拼接起来,得到两个博主之间一共有多少共同粉丝。