Spark-graphx-连接牢固的组件

时间:2017-06-12 20:23:59

标签: spark-graphx

我是spark和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

我相信我正确解释了用例,如果您需要更多详细信息,请告诉我。

最终目标是为每个强连接组分配一个用户定义的ID。

1 个答案:

答案 0 :(得分:0)

我使用PySpark,如果我尝试你的例子,我可能会得到DataFrame格式的输出如下:

+---------------+
|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脚本。我不知道为什么Scala会在单独的行中打印结果(可能是因为mapReduce并行应用算法,一旦达到收敛就打印出输出)。但是我认为你可以汇总结果并说1,2,3,4,5,6,7是强连接的并且属于rule1组。并且10,11,12属于规则2。