Hive 中 "contains" 的替代方案

Alternatives of "contains" in Hive

我需要编写一个配置单元查询,其中过滤器将位于字段的文本上。需要做一些事情,比如 text_field 包含 ("pattern1" and "pattern2") or ("pattern3" and "pattern4")

我知道我们可以多次使用 "like",但我希望有更好的选择。

在 Hive 中还能如何完成?

您可以使用 rlike

如果 A 的任何(可能为空)子字符串与 Java 正则表达式 B 匹配,则为 TRUE,否则为 FALSE。例如,'foobar' RLIKE 'foo' 的计算结果为 TRUE,'foobar' RLIKE '^f.*r$'.

的计算结果也是如此
WHERE (mycolumn rlike 'pattern1' AND mycolumn rlike 'pattern2') 
OR (mycolumn rlike 'pattern3' AND mycolumn rlike 'pattern4')