推薦好友
a -> b,c,d
b -> a,c,e
-------------
a-b ab_cd
a-c ac_bd
a-d ad_bc
b-a ba_ce
b-c bc_ae
b-e be_ac
-------------
b-> d
a-> e
已經直接可以排除ac是好友的情況了
~~~~~~~~~~~~~~~~~~~~~~~~~
不需要提前將相互關注的好友,只保留一條資料,因為即使是兩條在reduce中已經set去重了
a bb c
b amap:
key:主 value:從
key:從 value:主
結果:a b ,b a, b c, c b,a b,b a
reduce:
根據key,將values做笛卡爾積,得到的結果可能是二度關係(因為這裡面包括已經是好友的情況)
結果:a c
在經過乙個mr去排除已經是好友的情況即可能ac已經是好友了
Hadoop例項 二度人脈與好友推薦
頂點a b c到i分別是社交 的使用者,兩頂點之間的邊表示兩頂點代表的使用者之間相互關注。那麼如何根據使用者之間相互關注所構成的圖,來向每個使用者推薦好友呢?可能大家都聽說過六度人脈的說法,所謂六度人脈是指 地球上所有的人都可以通過五層以內的熟人鏈和任何其他人聯絡起來。通俗地講 你和任何乙個陌生人之...
Hadoop例項 二度人脈與好友推薦
其實,社交 上的各個使用者以及使用者之間的相互關注可以抽象為乙個圖。以下圖為例 頂點a b c到i分別是社交 的使用者,兩頂點之間的邊表示兩頂點代表的使用者之間相互關注。那麼如何根據使用者之間相互關注所構成的圖,來向每個使用者推薦好友呢?可能大家都聽說過六度人脈的說法,所謂六度人脈是指 地球上所有的...
Hadoop例項 二度人脈與好友推薦
頂點a b c到i分別是社交 的使用者,兩頂點之間的邊表示兩頂點代表的使用者之間相互關注。那麼如何根據使用者之間相互關注所構成的圖,來向每個使用者推薦好友呢?可能大家都聽說過六度人脈的說法,所謂六度人脈是指 地球上所有的人都可以通過五層以內的熟人鏈和任何其他人聯絡起來。通俗地講 你和任何乙個陌生人之...