如何在Impala中仅替换指定列表内的特殊字符
在Impala中替换指定特殊字符的方案
要仅替换指定列表内的特殊字符、保留其他所有字符,可借助Impala的regexp_replace函数结合正则表达式实现。
目标替换字符列表
需替换的特殊字符包括:
<>:"/\|?*
实现SQL示例
通过正则表达式的字符类匹配所有目标字符,统一替换为指定内容(以下示例替换为下划线_,也可改为空字符串''直接删除特殊字符):
SELECT regexp_replace(your_column, '[<>:"/\\\\|?*]', '_') AS cleaned_column FROM your_table;
代码说明
regexp_replace函数参数依次为:待处理列名、匹配规则、替换后的字符- 正则表达式
[<>:"/\\\\|?*]中的[]代表字符类,包含所有需要替换的特殊字符- 注意:
\、|、?、*属于正则特殊符号,需转义处理;在Impala字符串中,\需写为\\\\才能被正则识别为普通反斜杠
- 注意:
- 最后一个参数可按需修改,比如要删除特殊字符就改为
''
内容的提问来源于stack exchange,提问作者Piyush Tirthgirikar
相关产品推荐
相关产品推荐

