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

nnsrf1az  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(535)

我有一些数字,比如键,值 (1,2),(3,4),(5,6) ,(7,8),(9,10),(2,11),(4,12),(6,13),(8,14),(14,19) 我的意见是 (1,2),(3,4),(5,6) ,(7,8),(9,10),(2,11),(4,12),(6,13),(8,14) 这里我需要创建关系1-->2和 2--> 11 我的最终结果是( 1,11) …即。如果你认为第一个元组键是1,值是2,那么另一个给定的元组中的一个2是键,11是值,也就是父、子和孙子的关系,我想我的输出是这样的 (parent,grand child) ```
my final output should be: (1,11),(3,12),(5,13),(7,19),(9,10)

假设我有一个如下的Dataframe:

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

我的例外输出是new df:

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

如何在python/pyspark中实现?
uyhoqukh

uyhoqukh1#

没有测试过,但像这样的东西应该可以做到:

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)

相关问题