hive 正则表达式详解[通俗易懂]

hive 正则表达式详解[通俗易懂]hive中的正则表达式还是很强大的。数据工作者平时也离不开正则表达式。对此,特意做了个hive正则表达式的小结。所有代码都经过亲测,正常运行。1.regexp语法:AREGEXPB操作类型:strings描述:功能与RLIKE相同selectcount(*)fromolap_b_dw_hotelorder_fwherecreate_date_widnotregexp

大家好,又见面了,我是你们的朋友全栈君。

项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步

hive中的正则表达式还是很强大的。数据工作者平时也离不开正则表达式。对此,特意做了个hive正则表达式的小结。所有代码都经过亲测,正常运行。

1.regexp

语法: A REGEXP B
操作类型: strings
描述: 功能与RLIKE相同

select count(*) from olap_b_dw_hotelorder_f where create_date_wid not regexp '\\d{8}'

与下面查询的效果是等效的:

select count(*) from olap_b_dw_hotelorder_f where create_date_wid not rlike '\\d{8}';

2.regexp_extract

语法: regexp_extract(string subject, string pattern, int index)
返回值: string
说明:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。

hive> select regexp_extract('IloveYou','I(.*?)(You)',1) from test1 limit 1;
Total jobs = 1
...
Total MapReduce CPU Time Spent: 7 seconds 340 msec
OK
love
Time taken: 28.067 seconds, Fetched: 1 row(s)
hive> select regexp_extract('IloveYou','I(.*?)(You)',2) from test1 limit 1;
Total jobs = 1
...
OK
You
Time taken: 26.067 seconds, Fetched: 1 row(s)
hive> select regexp_extract('IloveYou','(I)(.*?)(You)',1) from test1 limit 1;
Total jobs = 1
...
OK
I
Time taken: 26.057 seconds, Fetched: 1 row(s)
hive> select regexp_extract('IloveYou','(I)(.*?)(You)',0) from test1 limit 1;
Total jobs = 1
...
OK
IloveYou
Time taken: 28.06 seconds, Fetched: 1 row(s)
hive> select regexp_replace("IloveYou","You","") from test1 limit 1;
Total jobs = 1
...
OK
Ilove
Time taken: 26.063 seconds, Fetched: 1 row(s)

3.regexp_replace

语法: regexp_replace(string A, string B, string C)
返回值: string
说明:将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符,类似oracle中的regexp_replace函数。

hive> select regexp_replace("IloveYou","You","") from test1 limit 1;
Total jobs = 1
...
OK
Ilove
Time taken: 26.063 seconds, Fetched: 1 row(s)
hive> select regexp_replace("IloveYou","You","lili") from test1 limit 1;
Total jobs = 1
...
OK
Ilovelili

参考链接:

  1. https://www.iteblog.com/archives/1639.html hive字符串处理函数,比较全
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145310.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月13日 上午8:20
下一篇 2022年5月13日 上午8:40


相关推荐

  • 高数——多元函数的定义及极限

    高数——多元函数的定义及极限之前我们学习的导数、微分和积分都是针对一元函数的,也就是函数只依赖一个变量,但是在我们今后遇到的实际问题中,更多出现的却是要考虑多个变量的情况,这是我们就要用多元函数来表示它们之间的关系了。比如地球表面上一点的温度T同时依赖于纬度x和经度y,可以用一个二元函数T=f(x,y)来表示。和一元函数一样,二元函数也是有定义域和值域的,一元函数的定义域是轴上一个“线段”上的点的集合,而…

    2022年6月3日
    49
  • 移动硬盘遇到无法访问,文件或目录损坏且无法读取的解决办法[通俗易懂]

    文件或目录损坏且无法读取的解决办法大集合方法很简单,用chsdsk命令即可详解如下:开始–运行–输入cmd–输入chkdsk盘符:/f,例如:“chkdskd:/f”。等命令运行完即可。这里要注意的是,那个冒号后面要空一格,别跟着就写”/f”故障现象不管是移动硬盘还是U盘,包括本地电脑上的硬盘分区,双击打开时,提示:“无法打开H盘,文件或目录损坏且无法读取,…….

    2022年4月11日
    80
  • 数据库–关于truncate和delete的区别

    数据库–关于truncate和delete的区别数据库 关于 truncate 和 delete 的区别 1 truncate 删除表中的内容 不删除表结构 释放空间 2 delete 删除内容 不删除表结构 但不释放空间 3 区别 3 1 内存空间 truncate 删除数据后重新写数据会从 1 开始 而 delete 删除数据后只会从删除前的最后一行续写 内存空间上 truncate 省空间 3 2 处理速度因为 truncate 是直接从 1 开始 即全部清空开始 而 delete 需要先得到当前行数 从而进行续写 所以 truncate 删除速

    2026年3月17日
    1
  • 【高效分页数据处理】:n8n HTTP节点的工作流优化技巧

    【高效分页数据处理】:n8n HTTP节点的工作流优化技巧

    2026年3月15日
    2
  • SQLyog安装成功步骤(附带码),2021版最新

    SQLyog安装成功步骤(附带码),2021版最新一、SQLyong安装:先是一路next,自己改变一下安装路径,点自己激活:Name自己取,下一行输入dd987f34-f358-4894-bd0f-21f3f04be9c1即可二、各种类型的算法高频面试题汇总:https://blog.csdn.net/qq_40262372/article/details/112556249三.群里已有字节、滴滴大佬,可帮忙内推!也欢迎其他大厂的工作人士进群!帮忙内推~QQ群:725936761四、B站视频讲解如何三个月学习JAVA..

    2022年5月11日
    90
  • qttreewidget详解_qtreewidget获取节点层级

    qttreewidget详解_qtreewidget获取节点层级目前了解到的有两种方法:1:通过findItems过滤出符合条件的item只是用于简单的过滤,复杂的效果不太好,推荐第二种QList<QTreeWidgetItem*>findItems(constQString&text,Qt::MatchFlagsflags,intcolumn=0)const;QList<QTreeWidgetItem*>MatchItem=

    2026年4月20日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号