gpt4 book ai didi

apache-spark - 如何用python在spark中加入两个RDD?

转载 作者:行者123 更新时间:2023-12-04 05:22:39 24 4
gpt4 key购买 nike

认为

rdd1 = ( (a, 1), (a, 2), (b, 1) ),
rdd2 = ( (a, ?), (a, *), (c, .) ).

想要生成
( (a, (1, ?)), (a, (1, *)), (a, (2, ?)), (a, (2, *)) ).

有什么简单的方法吗?
我认为它与交叉连接不同,但找不到好的解决方案。
我的解决方案是
(rdd1
.cartesian( rdd2 )
.filter( lambda (k, v): k[0]==v[0] )
.map( lambda (k, v): (k[0], (k[1], v[1])) ))

最佳答案

您只是在寻找一个简单的连接,例如

rdd = sc.parallelize([("red",20),("red",30),("blue", 100)])
rdd2 = sc.parallelize([("red",40),("red",50),("yellow", 10000)])
rdd.join(rdd2).collect()
# Gives [('red', (20, 40)), ('red', (20, 50)), ('red', (30, 40)), ('red', (30, 50))]

关于apache-spark - 如何用python在spark中加入两个RDD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30988996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com