前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住给大家分享一下。点击跳转到网站:https://www.captainai.net/dongkelun
前言
学习总结Oracle、Spark、Hive SQL 正则匹配
函数
- | 函数 |
---|---|
Oralce | REGEXP_LIKE |
Spark | RLIKE、REGEXP |
Hive | RLIKE、REGEXP |
建表
Oracle
1 | CREATE TABLE TEST_REGEXP ( |
Hive
1 | CREATE TABLE TEST_REGEXP ( |
示例
查询NAME含有数字的记录
Oracle
1 | SELECT * FROM TEST_REGEXP WHERE REGEXP_LIKE(NAME,'\d+'); |
Hive
1 | select * from TEST_REGEXP where name rlike '\\d+' |
Spark
Spark 和 Hive一样1
2
3
4select * from TEST_REGEXP where name rlike '\\d+'
select * from TEST_REGEXP where name rlike '[0-9]+';
select * from TEST_REGEXP where name regexp '\\d+';
select * from TEST_REGEXP where name regexp '[0-9]+';
不过在代码里 \ 需要转义
1 | package com.dkl.blog.spark.sql |
小结
Oralce和Hive、Spark除了函数不同外,正则也多少有不同,比如上例中Oraqlce只有一个 \ 而Hive和Spark有两个\,具体的正则匹配规则可参考网上的资料,其中下面参考的资料中也有一些规则可以参考