使用以下dataframe:
data1 = [("A",None, 1, 'Highest'),("B","A", 2, 'Medium'),("C","B", 3, 'Lowest'),("D","B", 3, 'Lowest')]
df1 = spark.createDataFrame(data=data1, schema = ['ID','ParentID','Hierarchy','HierarchyName'])
df1.show(truncate=False)
我如何在PySpark中生成这个 Dataframe ,以便每个记录都有一个层次树,从它的级别一直到最高级别(ParentID为null)。但是要记住,树可以包含任何数量的节点,即3可能不是最低层次结构:
1条答案
按热度按时间fnvucqvd1#
这是一个图形任务,你可以使用spark graphx模块,使用pregel API来处理。你必须使用scala spark。参见https://spark.apache.org/docs/latest/graphx-programming-guide.html
如果你愿意保留pyspark,你可以看看graphframes包。最后一个版本是spark 3.0.x,它可能不适用于最新的spark版本。参见https://graphframes.github.io/graphframes/docs/_site/quick-start.html