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字符串处理函数,比较全
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • mysql截取字符串去重,mysql 截取字符串 去重 拼接

    mysql截取字符串去重,mysql 截取字符串 去重 拼接1:字符串截取LEFT(guid_,LENGTH(guid_)-5)//1001-1002-1003截取为1001-10022:判断是否存在某字符串中IN(‘1001′,’1002′,’1003’)//whereidin(xxxx)可以用查询的某个字段直接whereidin(selectidfromxxxx)3:根据某个字段去重复在查询结果中加入COUNT(DIS…

  • C#与.NET的区别和C#程序结构

    C#与.NET的区别和C#程序结构C#语言及其特点(1)语法简洁,不允许直接操作做内存,去掉指针操作(2)彻底的面向对象设计,C#具有面向对象所应用的一切特性:封装、继承、多态(3)与Web紧密结合,C#支持绝大多数的Web标准

  • RS232线序问题(研旭手把手教你学DSP)「建议收藏」

    RS232线序问题(研旭手把手教你学DSP)「建议收藏」在研旭的手把手中,有一张图很可能会给大家带来误导,因为没有注明这是公头的线序还是母头的线序,所以很容易把RXD和TXD接反。看下图:在9芯串行接口排列图中,我们可以看到5针脚的一排从左往右是1-5,再看下图,我们可以清楚的看出,左边这个母头是符合书上的接口排序的,而右边的公头是不符合这个线序的。正好相反,5针脚的那一排的线序是从右往左是1-5,小结:…

  • 【Spark】Spark基础教程

    【Spark】Spark基础教程Spark最初由美国加州伯克利大学的AMP实验室于2009年开发,是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。Spark特点Spark具有如下几个主要特点:运行速度快:Spark使用先进的DAG(DirectedAcyclicGraph,有向无环图)执行引擎,以支持循环数据流与内存计算,基于内存的执行速度可比HadoopMapReduce快上百倍,…

  • RelativeLayout中子view设置Margin无效[通俗易懂]

    RelativeLayout中子view设置Margin无效[通俗易懂]发现:在RelativeLayout中如果一个子view设置如:layout_alignParentBottom或者layout_alignParentTop等属性,在代码中通过layoutParam动态设置margin会是无效。记录下。修改margin同时改变图片大小:RelativeLayout.MarginLayoutParamslayoutParams=(RelativeLayout

  • 启动打印服务bat_关闭文件与打印机服务 bat

    启动打印服务bat_关闭文件与打印机服务 bat重启打印机服务bat命令@echooffecho停止打印服务netstopSpoolerecho重新启动打印服务netstartSpoolerecho完成!!!!pause

发表回复

您的电子邮箱地址不会被公开。

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