小编Puh*_*Puh的帖子

关于apache火花的脱节设置

我试图找到使用apache spark在大量数据上搜索不相交集(连接组件/ union-find)的算法.问题是数据量.甚至图顶点的Raw表示也不适合单机上的ram.边缘也不适合公羊.

源数据是hdfs上图形边缘的文本文件:"id1\t id2".

id作为字符串值存在,而不是int.

我发现天真的解决方案是:

  1. 拿rdd of edges - > [id1:id2] [id3:id4] [id1:id3]
  2. 按键分组边缘. - >[id1:[id2;id3]][id3:[id4]]
  3. 为每个记录设置每组最小ID - > (flatMap) [id1:id1][id2:id1][id3:id1][id3:id3][id4:id3]
  4. 从第3阶段逆转 [id2:id1] -> [id1:id2]
  5. leftOuterJoin 第3阶段和第4阶段的rdds
  6. 从第2阶段开始重复,而第3步的rdd大小不会改变

但这导致节点之间传输大量数据(改组)

有什么建议吗?

algorithm mapreduce graph-theory disjoint-sets apache-spark

8
推荐指数
1
解决办法
900
查看次数