使用正则表达式配置单元 sql 从 table 中提取行

Extract rows from a table with regular expression hive sql

请检查 link 的结果和 table 信息。我需要查询行 在带有正则表达式的 Col B 中具有值“343”。所有列都是 strings 。也请善待任何关于如何在 Hive 中编写好的 REGEX 的好的学习材料。谢谢

这会起作用:

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

配置单元等价物是:

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

对于 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/ and of course regex101