You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark中如何对RDD实现精确词匹配及批量过滤指定词汇?

Apache Spark RDD 精确词汇过滤实现方案

问题核心原因

原代码使用"can" in x[0]的子串匹配逻辑,会命中所有包含目标子串的词汇,因此返回了canada、candy等非预期结果。

实现方案

1. 单个词汇精确匹配

直接修改过滤条件为完全相等判断即可:

output_result = list_RDD.filter(lambda x: x[0] == "can")

2. 多指定词汇批量匹配

要支持自定义词汇列表的迭代过滤,可先将目标词汇转为集合(集合的成员查询效率远高于列表,大数据量下性能优势显著),再判断当前词汇是否属于目标集合:

# 定义待匹配的指定词汇列表
target_words = ['can', 'uni', 'over', 'day']
# 转为集合提升查询效率
target_words_set = set(target_words)
# 过滤出所有精确匹配目标词汇的结果
output_result = list_RDD.filter(lambda x: x[0] in target_words_set)

可选:反向过滤(排除指定词汇)

如果需要反过来剔除列表中的指定词汇,仅保留其他词汇,调整条件为非成员判断即可:

output_result = list_RDD.filter(lambda x: x[0] not in target_words_set)

内容的提问来源于stack exchange,提问作者newprog1997

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:09:03