我试图找到所有已连接的组件(在此示例中,4连接到100,2连接到200等)我使用val g2 = GraphFrame(v2, e2)
val result2 = g2.connectedComponents.run()
并返回具有组件ID的节点。我的问题是,如何使用此ID查看所有连接的节点?如何找出这个id属于哪个节点?非常感谢。我对此很陌生。
val v2 = sqlContext.createDataFrame(List(
("a",1),
("b", 2),
("c", 3),
("d", 4),
("e", 100),
("f", 200),
("g", 300),
("h", 400)
)).toDF("nodes", "id")
val e2= sqlContext.createDataFrame(List(
(4,100, "friend"),
(2, 200, "follow"),
(3, 300, "follow"),
(4, 400, "follow"),
(1, 100, "follow"),
(1,400, "friend")
)).toDF("src", "dst", "relationship")
在此示例中,我希望看到下面的连接
----+----+
| 4| 400|
| 4| 100|
| 1| 400|
| 1| 100|
这就是现在的结果 (1,1),(2,2),(3,1),(4,1),(100,1)(200,2)(300,3)(400,1)。我怎么看到所有的连接?
答案 0 :(得分:2)
您已声明" a"," b"," c" ...是您图表的节点ID,但后来使用了1 ,2,3 ...作为定义边的节点ID。
您应该在创建顶点数据帧时将节点ID更改为数字:1,2,3 ..将该列命名为" id" :
val v2 = sqlContext.createDataFrame(List(
("a",1),
("b", 2),
("c", 3),
("d", 4),
("e", 100),
("f", 200),
("g", 300),
("h", 400)
)).toDF("nodes", "id")
这应该会给你想要的结果。