PySpark中基于值相等的键/值对过滤RDD

2024-07-07 08:59:55 发布

您现在位置:Python中文网/ 问答频道 /正文

给定

[('Project', 10),
 ("Alice's", 11),
 ('in', 401),
 ('Wonderland,', 3),
 ('Lewis', 10),
 ('Carroll', 4),
 ('', 2238),
 ('is', 10),
 ('use', 24),
 ('of', 596),
 ('anyone', 4),
 ('anywhere', 3),

其中成对RDD的值是单词频率

我只想返回出现10次的单词。 预期产量

 [('Project', 10),
   ('Lewis', 10),
   ('is', 10)]

我试着用

rdd.filter(lambda words: (words,10)).collect()

但它仍然显示了整个列表。我该怎么做


Tags: ofinprojectisuse单词频率anywhere
1条回答
网友
1楼 · 发布于 2024-07-07 08:59:55

你的lambda函数是错误的;应该是

rdd.filter(lambda words: words[1] == 10).collect()

比如说,

my_rdd = sc.parallelize([('Project', 10), ("Alice's", 11), ('in', 401), ('Wonderland,', 3), ('Lewis', 10)], ('is', 10)]

>>> my_rdd.filter(lambda w: w[1] == 10).collect()
[('Project', 10), ('Lewis', 10), ('is', 10)]

相关问题 更多 >