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

jv4diomz  于 2021-06-27  发布在  Hive
关注(0)|答案(2)|浏览(317)


请检查结果和表信息的链接。我需要用正则表达式查询b列中值为“343”的行。所有列都是字符串。另外,请指出任何关于如何在hive中编写好regex的好的学习材料。谢谢您

um6iljoc

um6iljoc1#

对于配置单元,请使用以下命令:

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风格的regex。你可以在这里找到很好的参考和实践:https://regexr.com/ 当然还有regex101

vd2z7a6w

vd2z7a6w2#

这将起作用:

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

Hive当量为:

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

相关问题