当我加入两个RDD时 key
梅有多个孩子 rdd
,这里我只想为每个键保留一个rdd。为了枫树。
a = sc.parallelize([('a','20200621'), ('b','20200701')])
b = sc.parallelize([('a',('20200520',10)), ('a', ('20200620',20)), ('b', ('20200620', 30))])
a.join(b).collect()
[('b', ('20200701', ('20200620', 30))),
('a', ('20200621', ('20200520', 10))),
('a', ('20200621', ('20200620', 20)))]
我只想预订两个日期最接近的rdd。这里,钥匙里 a
, 20200621
以及 20200620
比 20200621
以及 20200520
,所以我想预订 ('a', ('20200621', ('20200620', 20)))
而不是 ('a', ('20200621', ('20200520', 10)))
.
预期结果如下:
[('b', ('20200701', ('20200620', 30))),
('a', ('20200621', ('20200620', 20)))]
1条答案
按热度按时间q9yhzks01#
我通过使用
reduceByKey
.输出: