3

我正在尝试从配置单元表中查找特定列不包含空值或 \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

有人可以帮我解决上述情况的正确正则表达式吗?

谢谢你。

拉维

4

1 回答 1

1

看起来 hive 正在使用 Java 的正则表达式引擎,所以问题似乎出在正则表达式本身,更具体地说是在转义序列中。

尝试以下方法,如果不起作用,请告诉我:

(?:(?:\\\\N)+|\002|NULL)
于 2013-09-02T22:00:46.517 回答