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

在Spark-SQL中如何提取字母数字混合字符串的全部数字字符

Spark SQL提取混合串全部数字的实现方案

你当前使用的regexp_extract函数仅能返回第一个匹配的连续数字段,无法获取后续的数字内容。实现提取全串所有数字的最简方案如下:

方案1:正则替换(全版本兼容)

直接使用regexp_replace删除所有非数字字符即可得到所有数字的拼接结果:

spark.sql("select case when length(date) > 0 then regexp_replace(date, '[^0-9]', '') else '' end as date from input").show(false)

正则规则[^0-9]会匹配所有非数字字符,替换为空串后,输入1234avf456wef时输出结果为1234456,完全符合需求。

方案2:提取后拼接(Spark 3.1+版本支持)

如果需要先提取所有数字段再拼接,可以搭配regexp_extract_all和array_join实现:

spark.sql("select case when length(date) > 0 then array_join(regexp_extract_all(date, '\\d+'), '') else '' end as date from input").show(false)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:39:04