2017-06-12 81 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。