在Hive中使用regexp_extract

时间:2013-09-02 14:34:10

标签: regex hive

我试图从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 个答案:

答案 0 :(得分:1)

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

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

(?:(?:\\\\N)+|\002|NULL)