根据pyspark rdd检查列表中的项

ffdz8vbo  于 2021-07-12  发布在  Spark
关注(0)|答案(1)|浏览(224)

我有以下Pypark rdd和ID及其计数:

rdd = [('12', 560), ('34', 900), ('56', 800), ('78', 100), ('910', 220), ('125', 410), ('111', 41), etc.]

我有一个固定的清单:

id_list = ['12', '125', '78']

我想要一个新的键、值对的列表,包括id\u列表中的id和rdd中的counts。
因此,预期产出:

new_list = [('12', 560), ('125', 410), ('78', 100)]

如果rdd是一个python字典,我可以遍历id\列表,检查它是否在字典中,并返回一个带有key和counts的新列表。但我不知道我怎么能用rdd做到这一点。请告知。
我可能会尝试将rdd转换成字典,但这会破坏使用spark的目的。

xxhby3vn

xxhby3vn1#

您可以使用lambda函数过滤rdd,该函数检查密钥是否在 id_list :

rdd2 = rdd.filter(lambda x: x[0] in id_list)

相关问题