6
我試圖找到使用apache spark在大量數據上搜索不相交集合(連接組件/ union-find)的算法。 問題是數據量。甚至圖形頂點的原始表示也不適合在單個機器上運行。邊緣也不適合公羊。apache spark上的不相交集合
源數據是hdfs上的圖邊的文本文件:「id1 \ t id2」。
id以字符串值存在,而不是int。
樸素的解決方案,我發現是:邊緣
- 取RDD - >
[id1:id2] [id3:id4] [id1:id3]
- 組由鍵邊緣。 - >
[id1:[id2;id3]][id3:[id4]]
- 最小ID設置到每個組中的每個記錄 - >
(flatMap) [id1:id1][id2:id1][id3:id1][id3:id3][id4:id3]
- 反向而在RDD的大小從階段3
[id2:id1] -> [id1:id2]
- RDDS的
leftOuterJoin
RDD從階段3和4 - 重複從階段2步驟3將不會改變
但是這會導致對大量數據的節點之間的傳輸 (改組)
有何建議?
我認爲graphx將有你需要內置(鏈接什麼:http://spark.apache.org/ graphx /) –