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

如何在Pyspark Dataframe的String列中筛选含字母或特殊字符的值

Pyspark 过滤非纯数字字符串列实现方法

我们可以用Pyspark内置的rlike正则匹配方法实现需求,只要id列存在非0-9的字符(包括字母、特殊符号等)就会被筛选出来,具体实现如下:

  1. 导入依赖并构造测试数据
from pyspark.sql import SparkSession
from pyspark.sql.functions import col

# 初始化SparkSession
spark = SparkSession.builder.appName("filter_non_numeric").getOrCreate()

# 构造测试数据
data = [("12345",), ("23456",), ("3940A",), ("19045",), ("2BB56",), ("3(40A",)]
df = spark.createDataFrame(data, schema=["id"])
  1. 核心过滤代码
# 筛选包含非数字字符的记录
result_df = df.filter(col("id").rlike("[^0-9]"))

# 打印结果
result_df.show()
  1. 输出结果和你预期的一致:
+------+
|    id|
+------+
| 3940A|
| 2BB56|
|3(40A |
+------+

补充说明:[^0-9]是正则排除字符组,代表匹配任意不属于0-9范围的字符,只要id列中存在任意一个这类字符,rlike就会返回True,符合筛选条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:24:08