2017-06-12 56 views
0

我是新來的spark和spark-graphx。我試圖運行強連接的組件,但我只獲得連接的三元組。Spark-graphx-強力連接組件

我在這裏找的是獲得所有頂點(頂點組),它們只是強連接(包括單個節點)。

例子:

Vertex Edge description 

1  2  rule1 
1  3  rule1 
2  3  rule1 
3  4  rule1 
4  5  rule1 
5  6  rule1 
5  7  rule1 
9  10  rule2 
10  11  rule2 
10  12  rule2 

強連接組件的輸出:

(1,2,3) - Rule1 
(4) - Rule1 
(5,6,7)- Rule1 
(9,10,11,12)- Rule2 

我相信,我解釋了使用正確的情況下,請讓我知道如果你需要進一步的細節。

最終目標是爲每個強連接的組分配一個用戶定義標識。

回答

0

我使用PySpark如果我嘗試你的榜樣也許我會在數據幀格式輸出如下:

+---------------+ 
|id | component | 
+---+-----------+ 
|1 |rule1  | 
|2 |rule1  | 
|3 |rule1  | 
|4 |rule1  | 
|5 |rule1  | 
|6 |rule1  | 
|7 |rule1  | 
|9 |rule2  | 
|10 |rule2  | 
|11 |rule2  | 
|12 |rule2  | 
+---+-----------+ 

正如你可能知道,PySpark是Python的API,它仍然要解釋斯卡拉腳本。我不知道爲什麼Scala在單獨的行中打印結果(可能是因爲mapReduce並行應用算法,一旦達到收斂,它會打印輸出)。不過,我認爲你可以聚合結果,並說1,2,3,4,5,6,7強連接,屬於rule1組。 10,11,12屬於規則2。