如何在 PySpark 或 Python 中建立父子关系?



我有像键,值(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)

假设我有一个如下所示的数据帧:

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)

最新更新