使用Hive做数据清洗,经常需要使用正则表达式。
比较讨厌的是,正则表达式匹配失败的时候,hive完全不会报错。
原来的写法
SELECT * from ahhs_product_info where product_name NOT RLIKE ‘([\u4e00-\u9fa5])+’ ;
在hive里面的写法
SELECT * from ahhs_product_info where product_name NOT RLIKE ‘([\u4e00-\u9fa5])+’ ;
rlike
hive> select 1 from dual where A rlike '^f.*r$'; -----表示以f开头,中间任意字符,r结尾的字符
footbar
fsssdffsr
regexp_extract标题
语法: regexp_extract(string subject, string pattern, int index)
返回值: string
说明: 将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。
第一参数: 要处理的字段
第二参数: 需要匹配的正则表达式
第三个参数:(注意,这里的index指的是&