专栏首页数据科学中文社区Hive 的正则应用,用会了没?

Hive 的正则应用,用会了没?

环境:

Hive: 2.7.7
Oracle SQL Developer
Cloudera JDBC Driver

案例 - 1 : regexp_replace(s,regex,replacement)

select regexp_replace(name,'ali','alibaba') as clientName
from default.employee ;


select regexp_replace(name,'[ali]','alibaba') as clientName
from default.employee ;

结果:

将 name 等于 'ali' 替换成 'alibaba', 但不更改表级别的数据

image

image

注意:正则表达式一定是符合 Java 正则规范的,因为 Hive 是 Java 写的嘛

案例 - 2 : regexp_extract(subject,regex_pattern,index)

select  regexp_extract(name,'[ali]([a-z])*',0) 
        ,regexp_extract(name,'[ali]([a-z])*',1) 
from default.employee ;

结果:

image

注意:index 的选择很重要。它是extract group 的位置

案例 - 3 : where name RLike '.(a|l|i)'

select * from default.employee 
where name RLike '.*(a|l|i)+'

数据部署:

insert into default.employee (name,salary,subordinates,deductions,address)
select 'liton'
    ,345
    ,array('liton','acai','ayun') as sub
    , map('liton',1,'acai',2,'ayun',7) as ded
    ,named_struct('street',"zhejiang",  'city',"hangzhou",  'state',"hubin",  'zip',"201210")
from student 
limit 1 


insert into default.employee (name,salary,subordinates,deductions,address)
select 'tencent'
    ,543
    ,array('tencent','acai','ayun') as sub
    , map('tencent',1,'acai',2,'ayun',7) as ded
    ,named_struct('street',"zhejiang",  'city',"hangzhou",  'state',"hubin",  'zip',"201210")
from student 
limit 1

结果:

image

本文分享自微信公众号 - 有关SQL(SQLHub)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 面试二叉树看这 11 个就够了~

    不知道你有没有这种困惑,虽然刷了很多算法题,当我去面试的时候,面试官让你手写一个算法,可能你对此算法很熟悉,知道实现思路,但是总是不知道该在什么地方写,而且很多...

    Lenis
  • 世界著名期刊杂志里的表格样式

    我自己制作过不少糟糕的表格,也见过更多不规范的表格样式,其不专业的形态有很多种,不一而足。整体上看,这些不规范的表格,主要表现为结构混乱、逻辑不清以及外观粗糙。

    Lenis
  • 图解面试题:查找不在表里的数据

    下面是学生的名单,表名为“学生表”;近视学生的名单,表名为“近视学生表”。请问不是近视眼的学生都有谁?

    Lenis
  • winform实现拼图游戏

      一直从事web应用的开发,总感觉是要找个时间学一下winform的开发,恰好年末公司项目基本结束就抽空学一下winform,下面是我一周的学习成果——拼图游...

    ^_^肥仔John
  • JavaScript中AMD和ES6模块的导入导出对比

    我们前端在开发过程中经常会遇到导入导出功能, 在导入时,有时候是require,有时候是import 在导出时,有时候是exports,module.expor...

    陌上寒
  • spring-boot-2.0.3不一样系列之番外篇 - springboot事件机制,绝对有值得你看的地方

           本来打算这篇继续和大家一起讨论springboot启动源码的,可觉得再讲源码估计大家都没有看下去的勇气了,那么今天,我们不讲springboot的...

  • 基于zookeeper+leveldb的activemq集群

    温安适
  • 微信小程序来了,张小龙颠覆社交后又将颠覆移动互联网

    镁客网
  • 【极客周刊】啥子玩意?微信要出SVIP服务?OFO数百万购“ofo.com”域名?更多精彩内容进来看!

    一川水巷
  • SpringBoot2.x+Redis+nginx实现session共享和负载均衡

    本地访问:http://127.0.0.1:8080/session/getSeesion 可以获取到sessionid说明项目可以正常启动和访问,接下来需要配...

    sunny1009

扫码关注云+社区

领取腾讯云代金券