文档章节

hive函数 -- regexp_extract

E
 Eric_Guan
发布于 2017/02/13 14:48
字数 313
阅读 142
收藏 0

函数描述:

regexp_extract(str, regexp[, idx]) - extracts a group that matches regexp

字符串正则表达式解析函数。

-- 这个函数有点类似于 substring(str from 'regexp')  ..

参数解释:

其中:

str是被解析的字符串

regexp 是正则表达式

idx是返回结果 取表达式的哪一部分  默认值为1。

0表示把整个正则表达式对应的结果全部返回

1表示返回正则表达式中第一个() 对应的结果 以此类推 

注意点:

要注意的是idx的数字不能大于表达式中()的个数。

否则报错:

实例:

如:

select regexp_extract('x=a3&x=18abc&x=2&y=3&x=4','x=([0-9]+)([a-z]+)',0) from default.dual;

得到的结果为:

x=18abc

select regexp_extract('x=a3&x=18abc&x=2&y=3&x=4','x=([0-9]+)([a-z]+)',1) from default.dual;

得到的结果为:

18

select regexp_extract('x=a3&x=18abc&x=2&y=3&x=4','x=([0-9]+)([a-z]+)',2) from default.dual;

得到的结果为:

abc

我们当前的语句只有2个()表达式 所以当idx>=3的时候 就会报错

FAILED: SemanticException [Error 10014]: Line 1:7 Wrong arguments '2': org.apache.hadoop.hive.ql.metadata.HiveException: Unable to execute method public java.lang.String org.apache.hadoop.hive.ql.udf.UDFRegExpExtract.evaluate(java.lang.String,java.lang.String,java.lang.Integer)  on objectorg.apache.hadoop.hive.ql.udf.UDFRegExpExtract@2cf5e0f0 of class org.apache.hadoop.hive.ql.udf.UDFRegExpExtract with arguments {x=a3&x=18abc&x=2&y=3&x=4:java.lang.String, x=([0-9]+)[a-z]:java.lang.String, 2:java.lang.Integer} of size 3

本文转载自:

E
粉丝 2
博文 25
码字总数 14717
作品 0
朝阳
私信 提问
Hive使用regexp,RLIKE需要使用转义字符

使用Hive做数据清洗,经常需要使用正则表达式。 比较讨厌的是,正则表达式匹配失败的时候,hive完全不会报错。 原来的写法 SELECT * from ahhs_product_info where product_name NOT RLIKE '...

吐槽的达达仔
2014/12/05
336
0
Hive 内建操作符与函数开发——深入浅出学Hive

目录: 初始Hive Hive安装与配置 Hive 内建操作符与函数开发 Hive JDBC hive参数 Hive 高级编程 Hive QL Hive Shell 基本操作 hive 优化 Hive体系结构 Hive的原理 第一部分:关系运算 Hive支...

黄金小猪2号
2014/01/15
373
0
Oracle/Hive/Impala SQL比较

5 Function 指数据库内置的function,不讨论UDF。另外,操作符都不比较了,区别不大。 5.1 数学函数 功能 Oracle Hive Impala ABS 绝对值,有 有 有 SIN/SINH/ASIN/COS/COSH/ACOS/TAN/TANH/A...

hblt-j
2017/10/28
180
0
hive 自带 function

LIKE比较: LIKE 语法: A LIKE B 操作类型: strings 描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B的正则语法,则为TRUE;否则为FALSE。B中字符”_”表示任意单个...

xiaozhou18
2016/11/29
104
0
hive实现50w词频统计与ctrip数据集销售额计算

用hive对50万条记录(数据文件demo50w.utf8)进行词频统计,数据清洗转换自行处理,并列出词频最高的20个词。 首先准备好要统计单词的文件,并上传到hdfs上,登录hive,先创建一个表,这个表...

ls_6468
2018/03/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
今天
8
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
今天
6
0
前端——使用base64编码在页面嵌入图片

因为页面中插入一个图片都要写明图片的路径——相对路径或者绝对路径。而除了具体的网站图片的图片地址,如果是在自己电脑文件夹里的图片,当我们的HTML文件在别人电脑上打开的时候图片则由于...

被毒打的程序猿
今天
8
0
Flutter 系列之Dart语言概述

Dart语言与其他语言究竟有什么不同呢?在已有的编程语言经验的基础上,我们该如何快速上手呢?本篇文章从编程语言中最重要的组成部分,也就是基础语法与类型变量出发,一起来学习Dart吧 一、...

過愙
今天
5
0
rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部