我正在使用GraphX为公路建模。每个顶点是道路的一个点,连接两个顶点的每个边都包含它们之间的距离。 我想创建一个新图,其中距给定起始顶点的累积距离是每个顶点的属性。
我已经使用graph.triplets的递归函数完成了此操作,但是我想知道是否有更好的方法使用graphx API来做到这一点。
图形类似于this
val vertici : RDD[(VertexId, (Double, Double))] =
sc.parallelize(Array((1L, (1.1,1.1)), (2L, (2.1,2.1)), (3L, (3.1,3.1)),
(4L, (4.1,4.1)), (5L, (5.1,5.1)), (6L, (6.1,6.1))))
val archi : RDD[Edge[Double]] =
sc.parallelize(Array(Edge(1L, 2L, 0.5), Edge(2L, 3L, 0.5), Edge(3L, 4L, 0.5),
Edge(3L, 5L, 0.5), Edge(5L, 6L, 0.5)))
例如,如果我有6升作为起点,结果应该是这样的:
(6L, 0.0)
(5L, 0.5)
(3L, 1.0)
(2L, 1.5)
(1L, 2.0)
(4L, 1.5)
感谢帮助