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

如何筛选缩写作为独立词存在于公司名称的DataFrame行

解决方案:匹配独立单词形式的缩写

你的问题出在contains是子串匹配,会把单词内部的子串也匹配到(比如"ALCON"里的"co")。要确保缩写是作为独立单词存在于公司名称中,需要用正则表达式匹配单词边界。

代码实现

使用Spark的rlike函数结合正则表达式,匹配缩写前后为非单词字符或字符串首尾:

from pyspark.sql.functions import col, concat

# 过滤出abbr作为独立单词存在的行
df.filter(col('name').rlike(concat("(^|\\W)", col("abbr"), "(\\W|$)"))).display()

正则说明

  • (^|\\W):匹配字符串开头,或空格、标点等非单词字符
  • col("abbr"):要检查的缩写内容
  • (\\W|$):匹配非单词字符,或字符串结尾

这样就能精准匹配到MIDTOWN BEEF CO和SOUTH SHORE CO ACTION COUNCIL这两行,排除掉ALCON(因为"co"是单词内部的子串)。

大小写兼容处理

如果存在大小写不一致的情况(比如abbr是小写"co",name里是大写"CO"),可以统一转成小写后匹配:

from pyspark.sql.functions import col, concat, lower

df.filter(lower(col('name')).rlike(concat("(^|\\W)", lower(col("abbr")), "(\\W|$)"))).display()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 18:52:11