如何在pyspark或python中建立父子关系?

问题描述

我有数字,例如键,值(1,2),(3,4),(5,6),(7,8),(9,10),(2,11),(4,12),(6,13),(8,14),(14,19)

我的输入是(1,14)

在这里我需要创建关系1-> 2和2--> 11,我的最终输出是(1,11) .. ie,如果您认为第一个元组键是1和2,则再次给定另一个值元组2是键,值11是值。我希望我的输出类似于(parent,grand child)

my final output should be: (1,19),10)

假设我有一个如下数据框:

key   value
 1     2
 3     4
 5     6
 7     8
 9     10
 2     11
 4     12
 6     13
 8     14
14     19
19     23
13     17

我的例外输出是新的df:

key  value
1    11
3    12
5    17
7    19
9    10

如何在python / pyspark中实现?

解决方法

未经测试,但是可以通过以下方法达到目的:

s = [(1,2),(3,4),(5,6),(7,8),(9,10),(2,11),(4,12),(6,13),(8,14)]

for parent,child in s:
    g_child = [x[1] for x in s if x[0] == child]
    if g_child:
        print((parent,g_child[0]))
    else:
        print((parent,child))
        break

输出:

(1,11)
(3,12)
(5,13)
(7,14)
(9,10)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...