如何在使用pyspark的connectedComponents后获得图节点列表



我正在学习Python中的PySpark。如果我使用下面的代码行从我的图中获取组件,那么一列将与组件(随机数(一起添加到我的GraphDataFrame中。但我很好奇,有可能得到一个连接节点的列表吗?

g.connectedComponents()

结果只是一个普通的数据帧,您可以按component对其进行分组,然后使用collect_list函数(doc(将结果收集为列表。例如,使用图框中的示例图:

from graphframes.examples import Graphs
import pyspark.sql.functions as F
sc.setCheckpointDir("/tmp/spark-checkpoint")
g = Graphs(sqlContext).friends()
df = g.connectedComponents()
# getting the list of IDs per component
df2 = df.select("id", "component").groupBy("component") 
.agg(F.collect_list("id"))
df2.show()

将给出:

+------------+------------------+
|   component|  collect_list(id)|
+------------+------------------+
|412316860416|[a, b, c, d, e, f]|
+------------+------------------+

相关内容

  • 没有找到相关文章

最新更新