給出a-o個人中每個人的好友列表,求出哪些人兩兩之間有共同好友,以及他們的共同好友都有誰
原始檔案:
輸出格式: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
此題旨在求兩人之間的共同好友,原資訊是《人,該人的所有好友》,因此首先以好友為鍵,人為值,交給reduce找出擁有此好友的所有人;再將這些人中兩兩配對作為鍵,之前的鍵(好友)作為值交給reduce去合併a-b: c,e
...
簡而言之我打算分成兩個步驟,兩次迭代
1)求出每乙個人都是哪些人的共同好友
2)把這些人(用共同好友的人)作為key,其好友作為value輸出
第一階段的reduce函式主要完成以下任務
1.對所有傳過來的《朋友,list(人)>進行拼接,輸出《朋友,擁有這名朋友的所有人》
*/static class sharedfriendreducer01 extends reducer
sb.deletecharat(sb.length()-1);
context.write(key, new text(sb.tostring()));
} }/*
第二階段的map函式主要完成以下任務
1.將上一階段reduce輸出的《朋友,擁有這名朋友的所有人》資訊中的 「擁有這名朋友的所有人」進行排序 ,以防出現b-c c-b這樣的重複
2.將 「擁有這名朋友的所有人」進行兩兩配對,並將配對後的字串當做鍵,「朋友」當做值輸出,即輸出《人-人,共同朋友》
*/@override
protected void map(longwritable key, text value,context context)
throws ioexception, interruptedexception
for(string friend : set)
sb.deletecharat(sb.length()-1);
context.write(key, new text(sb.tostring()));
} }public static void main(string args)throws exception
}1)第一階段輸出檔案的內容
2)第二階段輸出檔案的內容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 mh o
i o,c
j ok b
l d,e
m e,f
o a,h,i,j,f
a-b: c,e
a-c: d,f
a-d: e,f
a-e: b,c,d
a-f: b,c,d,e,o
a-g: c,d,e,f
a-h: c,d,e,o
a-i: o
a-j: b,o
a-k: c,d
a-l: d,e,f
a-m: e,f
b-c: a
b-d: a,e
b-e: c
b-f: a,c,e
b-g: a,c,e
b-h: a,c,e
b-i: a
b-k: a,c
b-l: e
b-m: e
b-o: a
c-d: a,f
c-e: d
c-f: a,d
c-g: a,d,f
c-h: a,d
c-i: a
c-k: a,d
c-l: d,f
c-m: f
c-o: a,i
d-e: l
d-f: a,e
d-g: a,e,f
d-h: a,e
d-i: a
d-k: a
d-l: e,f
d-m: e,f
d-o: a
e-f: b,c,d,m
e-g: c,d
e-h: c,d
e-j: b
e-k: c,d
e-l: d
f-g: a,c,d,e
f-h: a,c,d,e,o
f-i: a,o
f-j: b,o
f-k: a,c,d
f-l: d,e
f-m: e
f-o: a
g-h: a,c,d,e
g-i: a
g-k: a,c,d
g-l: d,e,f
g-m: e,f
g-o: a
h-i: a,o
h-j: o
h-k: a,c,d
h-l: d,e
h-m: e
h-o: a
i-j: o
i-k: a
i-o: a
k-l: d
k-o: a
l-m: e,f
MapReduce尋找共同好友
1.測試檔案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 2....
求共同好友案例 mapreduce實現
friends.txt a b,c,d,f,e,o b a,c,e,k c f,a,d,i d a,e,f,l需求 求每兩個人的共同好友 a和b,a和c a b,c,d,f,e,o b a,c,e,k 好友列表作為k b a c a d a a b c b e b 將matask端的value 本人...
MapReduce 共同好友
下面是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函式的的輸入...