如何解决pyspark将多父级层次结构扁平化为单个列
我有一个节点-> parent_node数据集,格式如下。我需要生成一个node_map,以便任何试图选择“节点”或“任何父母”的查询都将生成一条匹配记录。
它看起来很简单,但是我无法在pyspark中以简单的方式完成此操作。父级数最多为9(下面的示例深度为2和3),因此自连接解决方案看起来很笨拙。
感谢您对此进行调查。
输入数据框
---------------------------------
|node | parent_node |
---------------------------------
|pl3182020828 | NULL |
|pl3182020830 | pl3182020828|
|pl3182020829 | pl3182020830|
|l66434 | pl3182020829|
|l66435 | pl3182020829|
|pl3182020832 | NULL |
|pl3182020831 | pl3182020832|
|l66900 | pl3182020831|
|pl3182020833 | pl3182020832|
|l66916 | pl3182020833|
---------------------------------
预期的输出数据帧
---------------------------------------------------------
|node |node_map |
---------------------------------------------------------
|l66434 |[l66434,pl3182020829,pl3182020830,pl3182020828 ]|
|l66435 |[l66435,pl3182020828] |
|l66900 |[l66900,pl3182020831,pl3182020832] |
|l66916 |[l66916,pl3182020833,pl3182020832] |
---------------------------------------------------------
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。