1

在此处查看表格信息

请检查结果和表格信息的链接。我需要使用正则表达式在 Col B 中查询值为 '343' 的行。所有列都是字符串。也请善意地指出如何在 Hive 中编写好的 REGEX 的任何好的学习材料。谢谢

4

2 回答 2

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

于 2018-12-18T14:03:27.390 回答
0

这将起作用:

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

蜂巢等价物是:

select * from tablename where rlike(B,'(.*)(343)(.*)');
于 2018-12-18T13:33:51.803 回答