我需要编写一个hive查询,其中过滤器将位于字段的文本上。需要做类似text_field包含的内容(" pattern1"和" pattern2")或(" pattern3"和" pattern4")
我知道我们可以使用"喜欢"多次,但我希望有更好的选择。
如何在Hive中完成?
答案 0 :(得分:1)
您可以使用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')