2014-09-19 84 views
0

我試圖構建某物。像GraphX的Pregel實現,但我不想使用mapReduceTriplets函數。相反,我嘗試使用graph.vertices.flatMap,因爲我不需要三元組,頂點就足夠了。Apache Spark/GraphX限制映射階段

我的代碼框架看起來(或多或少)像

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

我想通了,在我的情況下,我可以使用最後一輪圖的頂點,然後做我的計算,並返回新的值。