Я использую GraphX для моделирования шоссе. Каждая вершина является точкой дороги, и каждое ребро, соединяющее две вершины, содержит расстояние между ними.
Я хотел бы создать новый граф, в котором суммарное расстояние от заданной начальной вершины является свойством каждой вершины.
Я сделал это с помощью рекурсивной функции с использованием graph.triplets, но мне интересно, есть ли лучший способ сделать это с помощью API GraphX.
График похож на это
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)))
Например, если у меня есть 6L в качестве начальной точки, результат должен быть таким:
(6L, 0.0)
(5L, 0.5)
(3L, 1.0)
(2L, 1.5)
(1L, 2.0)
(4L, 1.5)
Спасибо за помощь