gpt4 book ai didi

python - 如何在pyspark中通过键找到两个rdd的交集?

转载 作者:太空狗 更新时间:2023-10-30 02:43:14 24 4
gpt4 key购买 nike

我有两个 rdds:

rdd1 = sc.parallelize([("www.page1.html", "word1"), ("www.page2.html", "word1"), 
("www.page1.html", "word3")])

rdd2 = sc.parallelize([("www.page1.html", 7.3), ("www.page2.html", 1.25),
("www.page3.html", 5.41)])

intersection_rdd = rdd1.keys().intersection(rdd2.keys())

//当我这样做时,我得到的只是键的交集,即 (www.page1.html, www.page2.html)。

但我需要键以及来自两个 rdds 的两个值。输出应如下所示:

[www.page1.html, (word1, word3, 7.3)]

[www.page2.html, (word1, 1.25)]

最佳答案

例如,您可以cogroup 和过滤器:

## This depends on empty resultiterable.ResultIterable
## evaluating to False

intersection_rdd = rdd1.cogroup(rdd2).filter(lambda x: x[1][0] and x[1][1])
intersection_rdd.map(lambda x: (x[0], (list(x[1][0]), list(x[1][1])))).collect()

## [('www.page1.html', (['word1', 'word3'], [7.3])),
## ('www.page2.html', (['word1'], [1.25]))]

关于python - 如何在pyspark中通过键找到两个rdd的交集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34195963/

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