我试图从hive表中查找特定列不包含空值或\ N值或STX字符'\ 002'的行。目标是找到哪些行包含除这三个之外的一些字符。
我尝试了这个配置单元查询:
select column1,length(regexp_replace(column1,'\N|\002|NULL','')) as value
FROM table1 LIMIT 10;
在以下情况下,我期待零,但我得到以下内容:
column1 value
NULL NULL
0
NULL NULL
0
\N\N\N\N\N\N\N\N 8
NULL NULL
\N\N\N\N\N\N\N\N 8
NULL NULL
NULL NULL
\N\N\N 3
有人可以帮我解决上述情况的正确正则表达式吗?
谢谢。
拉维
答案 0 :(得分:1)
看起来hive正在使用Java的正则表达式引擎,所以问题似乎在于正则表达式本身,更具体地说是在转义序列中。
尝试以下操作,如果不起作用,请告诉我们:
(?:(?:\\\\N)+|\002|NULL)