MapReduce:共同好友

社交网站上,在看好友信息时,经常会得到如下一个信息,你和xxx有N位共同好友。
下面是A、B、C、D、E 5个人的好友情况:
A -> B C D
B -> A C D E
C -> A B D E
D -> A B C E
E -> B C D
第一行的意思是A有BCD 3个好友,下面几行的以此类推。
请使用 map reduce 任务,完成共同好友这个功能。
要求:
1. 描述清楚map和reduce函数的的输入,输出
2. (optional)将map 函数、reduce函数的输出逐步演算出来


解答
1.map输入:(偏移量,原始数据)
map输出:([用户1,用户2],用户1和用户2的共同好友)
reduce输入:([用户1,用户2],用户1和用户2的共同好友)
reduce输出:([用户1,用户2],[用户1、用户2的共同好友列表])

2.
map输入:
0 ABCD
4 BACDE
9 CABDE
14 DABCE
19 EBCD

map输出:
BC A
BD A
CD A
AC B
AD B
AE B
CD B
CE B
DE B
AB C
AD C
AE C
BD C
BE C
DE C
AB D
AC D
AE D
BC D
BE D
CE D
BC E
BD E
CD E

reduce输入:
BC A
BD A
CD A
AC B
AD B
AE B
CD B
CE B
DE B
AB C
AD C
AE C
BD C
BE C
DE C
AB D
AC D
AE D
BC D
BE D
CE D
BC E
BD E
CD E

reduce输出:
AB CD
AC BD
AD BC
AE BCD
BC ADE
BD ACE
BE CD
CD ABE
CE BD
DE BC
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kangwq2017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值