【发布时间】:2013-09-02 14:34:09
【问题描述】:
我正在尝试从 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
有人可以帮我解决上述情况的正确正则表达式吗?
谢谢。
拉维
【问题讨论】:
-
第1列的数据类型是什么?
-
column1 的日期类型是字符串
-
你不应该避开斜线吗?例如:
\\N|\\002|NULL -
我试过了,但是得到了以下错误: 原因:java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 1 \N|\002|NULL
-
是
\N换行还是文字` followed byN`。