У меня есть график этой формы:spark-graphx самый активный пользователь?
_ 3 _
/' '\
(1) (1)
/ \
1--(2)--->2
Я хочу считать наиболее активным пользователем (которые следуют самым, здесь это пользователь 1, который следует два раза пользователя 2 и один раз пользователь 3). Мой график этой формы графика [Int, Int]
val edges = Array(Edge(1,10,1), Edge(10,1,1), Edge(11,1,1), Edge(1,11,1), Edge(1,12,1))
val vertices = Array((12L,12), (10L,10), (11L,11), (1L,1))
val graph = Graph(sc.parallelize(vertices),sc.parallelize(edges),0)
Моя идея заключается в том, чтобы использовать для группы srcId для ребер и посчитать с помощью итератора, а затем сортировать, но у меня есть вопросы, чтобы использовать итератор, тип довольно сложны:
graph.edges.groupBy(_.dstId).collect()
имеет тип:
Array [(org.apache.spark.graphx.VertexId, Iterable [org.apache.spark.graphx.Edge [Int]])]
Любые идеи?
Вы можете поделиться с нами своим кодом? Как вы строите свой график? – cheseaux