使用正则表达式Hive SQL从表中提取行

时间:2018-12-18 13:26:06

标签: regex string hive row

Check the table info here

请检查链接以获取结果和表格信息。我需要查询行 在Col B中具有正则表达式的值“ 343”。所有列都是字符串。另外,请好心地指出任何好的学习资料,以了解如何在Hive中编写好的REGEX。谢谢

2 个答案:

答案 0 :(得分:1)

对于Hive来说,使用这个:

select * from tablename where B rlike '343';

检查是否有效:

hive> select '123435' rlike '343';
OK
_c0
true

阴性测试

hive> select '12345' rlike '343';
OK
_c0
false
Time taken: 1.675 seconds, Fetched: 1 row(s)

Hive使用Java风格的正则表达式。您可以在这里找到良好的参考和实践:https://regexr.com/,当然还有regex101

答案 1 :(得分:0)

这将起作用:

select * from tablename where regexp_like(B,'(.*)(343)(.*)');

蜂巢等效项是:

select * from tablename where rlike(B,'(.*)(343)(.*)');