Hive 正则表达式未按预期工作

Hive regex not working as expected

我有一个 Hive table,它有一个字母数字字符串作为主键。我想 select 键以一组特定字符开头的行,所以我使用

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

出于某种原因,这 returns 没有,而下面的查询 returns 5 行:

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

具体来说,Hive 处理正则表达式括号 [] 的方式似乎存在问题。 returns 什么都没有的另一个查询是:

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

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

PS: 我也试过了

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

它也没有返回任何内容。

如果你想匹配正则表达式,你应该使用 RLIKE 运算符和 Java-like 正则表达式语法。

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

source