我正在努力建立......像GraphX的Pregel实现,但我不想使用mapReduceTriplets
- 函数。相反,我尝试使用graph.vertices.flatMap
因为我不需要三元组和顶点就足够了。
我的代码框架看起来(或多或少)像
while(){
// Create messages for other nodes and run program logic,
// should only run on nodes that have received a message on round before
messages = graph.vertices.flatMap()
// Join back nodes into graph
newVerts= graph.innerJoin(messages)
g : Graph = graph.outerJoinVertices(newVerts)
}
我的问题是在迭代i
中我只想在第i-1
轮收到消息的节点上进行flatMap操作。使用mapReduceTriplets,这是通过使用只有这个节点处于活动状态的activeSet来完成的,但我找不到只使用节点的VertexRDD的这种操作。
有人知道如何有效地解决这个问题吗?
提前致谢!
答案 0 :(得分:0)
我想通了,在我的情况下,我可以使用最后一轮图形的顶点,然后进行计算并加入新值。