hive的like和rlike区别

时间:2021-09-22 16:27:40

面试过程中,有技术大牛提到了一个问题,让我不知所措:like与rlike有什么区别呀?

后面我百度查了一下,大概归纳如下,希望对大家有帮助:

1、定义

       (1)like的内容 不是正则 ,而是通配符。像mysql中的"like",但是建议使用高级函数" instr "效率更高。

       (2)rlike的内容可以是正则,正则的写法与java一样。需要转义,例如'\m'需要使用'\\m' 

2、举例

(1)like

hive> select "11111112222123333" like "%12%" ;


(2)rlike,用相应的正则表达式即可
    a.    hive> select "11111112222123333" rlike ".*12.*" 
    b.    hive>select "11111112222123333" rlike  "^12"  
    c.    hive> select "aabba" rlike "aa\\w"  
    d.   hive> select "aaannnn" rlike "aa\\w+" 

      以上几种方式使用正则都可以实现。