pyspark如何实现树层次结构的深度遍历?

pyspark如何实现树层次结构的深度遍历。在表中有两列,表示父子结构,如果用pyspark实现树结构,建立层次关系,并且实现某节点所有子孙节点的遍历访问。
比如:下面三行数据,表示节点id:0有两个子节点,一个孙节点。
sonID paraID
1 0
2 0
3 1

阅读 2.3k
1 个回答

安装GraphFrames库:

pyspark --packages graphframes:graphframes:0.8.1-spark3.0-s_2.12

然后:

from pyspark.sql import SparkSession
from graphframes import *

# 创建SparkSession
spark = SparkSession.builder.appName("example").getOrCreate()

# 创建数据
data = [("0", "1"), ("0", "2"), ("1", "3")]
df = spark.createDataFrame(data, ["src", "dst"])

# 创建GraphFrame
g = GraphFrame(df, df)

# 执行深度优先遍历
results = g.bfs("id = '0'", "id = '3'")

# 打印结果
results.show()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题