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

Spark SQL中如何对比key与email列子串提取合规纯数字ID

修改后的Spark SQL语句

SELECT 
  CASE 
    WHEN type = 'KEY' AND LENGTH(key) > 0 
    THEN 
      CASE 
        WHEN REPLACE(key, email, '') RLIKE '^[0-9]+$' 
        THEN REPLACE(key, email, '') 
        ELSE '' 
      END
    ELSE ''
  END AS id
FROM input

实现逻辑说明

  • 外层CASE直接匹配规则1:仅当type为KEY且key长度大于0时进入后续处理,其余场景直接返回空值
  • 内层CASE同时覆盖规则2和规则3:首先通过REPLACE(key, email, '')从key中剔除email部分得到ID候选值,再用正则^[0-9]+$校验候选值是否仅由数字组成,符合要求则返回候选值,不符合则返回空值

上述语句在你的样例输入上执行后,输出结果和要求的期望输出完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:57:03