Apache Spark / GraphX限制Map-Phase

时间:2014-09-19 07:31:39

标签: apache-spark

我正在努力建立......像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的这种操作。

有人知道如何有效地解决这个问题吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我想通了,在我的情况下,我可以使用最后一轮图形的顶点,然后进行计算并加入新值。