我正在学习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]|
+------------+------------------+