文档章节

Hive使用regexp,RLIKE需要使用转义字符

吐槽的达达仔
 吐槽的达达仔
发布于 2014/12/05 22:18
字数 255
阅读 374
收藏 0

使用Hive做数据清洗,经常需要使用正则表达式。

 

比较讨厌的是,正则表达式匹配失败的时候,hive完全不会报错。

原来的写法

SELECT * from ahhs_product_info where product_name NOT RLIKE '([\u4e00-\u9fa5])+' ;

 

在hive里面的写法

SELECT * from ahhs_product_info where product_name NOT RLIKE '([\\u4e00-\\u9fa5])+' ;

 

另外用到了Hive的正则表达式提取数据的函数,regexp_extract()

用法如下:

regexp_extract(string subject, string pattern, int index)

通过下标返回正则表达式指定的部分。regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 2) returns ‘bar.’

 

注意,这里的index指的是:返回所有匹配的第N个。只有当匹配成功的对象>=2的时候,index可以选1,2。一般情况下是0.

如:

select uid,
      visittime,
      pageUrl,
      r_id,
      regexp_extract(pageUrl,'(?<=p-)\\d+(?=\\.html)',0) as pid
from sitevisitlog
where statdate='20141021'

--根据URL提取产品ID的使用

 

使用了转义字符,就可以正常地识别正则表达式了。

正则表达式的强大功能比Oracle的LIKE牛逼多了!!

 

 

本文转载自:http://dacoolbaby.iteye.com/blog/1902959

吐槽的达达仔
粉丝 28
博文 104
码字总数 7105
作品 0
广州
程序员
私信 提问
Hive 内建操作符与函数开发——深入浅出学Hive

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

黄金小猪2号
2014/01/15
377
0
MySql模糊查询like通配符使用详细介绍

一、SQL模式 SQL的模式匹配允许你使用“”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模式缺省是忽略大小写的。下面显示一些例子。注意在你使用SQL模式时...

snail-
2016/01/21
72
0
MySql模糊查询like通配符

MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式。 一、SQL模式 SQL的模式匹配允许你使用“”匹配任何单个字符,而“%”匹配任意数目...

别寒
2015/08/28
135
0
hive 自带 function

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

xiaozhou18
2016/11/29
113
0
【sql(mysql + oracle)】

【Mysql】 查看owner栏位中每个值的出现次数。 select distinct owner as uowner , count(*) as countfrom t_l0 group by uowner order by count DESC 【Mysql】模式匹配 REGEXP SELECT * FR......

SibylY
2014/12/24
119
0

没有更多内容

加载失败,请刷新页面

加载更多

代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
今天
5
0
学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
今天
8
0
VMware vSphere的两种RDM磁盘

在VMware vSphere vCenter中创建虚拟机时,可以添加一种叫RDM的磁盘。 RDM - Raw Device Mapping,原始设备映射,那么,RDM磁盘是不是就可以称作为“原始设备映射磁盘”呢?这也是一种可以热...

大别阿郎
今天
12
0
【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
16
0
Linux 内核的五大创新

在科技行业,创新这个词几乎和革命一样到处泛滥,所以很难将那些夸张的东西与真正令人振奋的东西区分开来。Linux内核被称为创新,但它又被称为现代计算中最大的奇迹,一个微观世界中的庞然大...

阮鹏
昨天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部