在Spark GraphX中,ShortestPaths
不会将RDD
作为输入,而是Seq
这意味着以下内容不起作用:
val paths = ShortestPaths.run(graph,graph.vertices)
然而,我的图表太大而无法调用collect
,我不想通过强制它仅限于驱动程序来减慢速度。是否有使用map
或aggregateMessages
的解决方法?或者我将不得不自己重写路径查找代码?
答案 0 :(得分:0)
我必须承认你的目标对我没有意义。你在寻找一个地图,使用简单的语言,Vertex - > (其他顶点,其他顶点的最短路径)列表?对我来说,最短路径问题总是涉及一个相对较小的顶点子集,所以Seq
对我来说很有意义。
无论如何,我认为您需要使用Pregel
object来自行计算最短路径,使用Google原始Pregel paper开创的批量同步并行方法和{{3来自Facebook。 Giraph是一篇关于在GraphX中使用带有Pregel
的BSP进行最短路径的帖子。