【问题标题】:Hive regex not working as expectedHive 正则表达式未按预期工作
【发布时间】:2018-01-30 00:34:53
【问题描述】:

我有一个 Hive 表,其中有一个字母数字字符串作为主键。我想选择键以特定字符集开头的行,所以我使用

Select * from my table where pk like '[A-Z]%' limit 5;

由于某种原因,这不返回任何内容,而下面的查询返回 5 行:

Select * from my table where pk like 'F%' limit 5;

具体来说,Hive 如何处理正则表达式括号 [] 似乎存在问题。另一个什么都不返回的查询是:

Select * from my table where pk like '[F]%' limit 5;

有谁知道这是为什么以及如何解决它?

PS:我也试过了

Select * from my table where pk rlike 'F%' limit 5;

它也没有返回任何东西。

【问题讨论】:

    标签: regex hive hiveql


    【解决方案1】:

    如果你想匹配一个正则表达式,你应该使用 RLIKE 运算符和类似 Java 的正则表达式语法。

    Select * from my table where pk rlike '^[A-Z].*' limit 5;
    

    source

    【讨论】:

    • 谢谢,我没有意识到 Hive 使用 Java 正则表达式。您的正则表达式字符串中有一个额外的 $ - 删除它,我会将您标记为答案。
    • 是的,对不起,我的意思是 '^[A-Z].*' :匹配表达式开头的 '^' 字符
    猜你喜欢
    • 2014-04-28
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    相关资源
    最近更新 更多