问题描述
我有数字,例如键,值(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)