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

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

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

以上是 pyspark如何实现树层次结构的深度遍历? 的全部内容, 来源链接: utcz.com/p/938957.html

回到顶部