`
dacoolbaby
  • 浏览: 1267141 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

    博客分类:
  • Hive
阅读更多

使用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牛逼多了!!

 

 

分享到:
评论
1 楼 jackhong1108 2017-06-06  
你可能只知道Oracle有like,不知道Oracle有其他的正则函数

相关推荐

    presto和hive的使用区别

    Hive是把一个查询转化成多个MapReduce任务,然后一个接一个执行。执行的中间结果通过对磁盘的读写来同步。然而,Presto没有使用MapReduce,它是通过一个定制的查询和执行引擎来完成的。它的所有的查询处理是在内存中...

    Hive使用手册Hive使用手册

    连接Hive通常通过Hive Shell或使用其他支持Hive的客户端如Beeline、Hue等。要连接Hive,你需要知道Hive服务器的地址、端口以及认证方式(如果有的话)。 2. **Hive支持的数据类型** - **原子数据类型** 包括:INT...

    Hive metastore 使用达梦数据库存储元数据

    《Hive metastore 使用达梦数据库存储元数据详解》 在大数据处理领域,Hive作为一个分布式数据仓库工具,被广泛用于存储和管理大规模结构化数据。Hive的元数据是其核心组成部分,它包含了表、分区、列等信息,使得...

    hive jdbc 连接所需要的jar包

    在使用Hive JDBC进行连接时,需要依赖一系列的jar包来确保所有必要的功能得以实现。下面将详细介绍这些jar包以及它们在Hive JDBC连接中的作用。 首先,`hivelib`这个压缩包很可能包含了以下关键的jar文件: 1. **...

    hive建立JDBC连接需要的驱动jar包

    当需要通过编程方式访问Hive数据库时,就需要使用Hive的JDBC驱动。本文将详细介绍如何使用Hive JDBC驱动来建立与Hive服务器的连接。 首先,Hive JDBC驱动是Java程序连接Hive服务的关键组件,它实现了JDBC接口,使得...

    hive常用运算和函数1

    10. **REGEXP 操作**: 使用 `REGEXP` 运算符也进行正则表达式匹配,功能与RLIKE相同。例如:`hive&gt; select 1 from dual where ‘key' REGEXP '^f.*r$';` 除了关系运算,Hive还支持数学运算和逻辑运算,例如加法(`+`...

    Hive配置(Oracle数据库为元数据)

    当需要使用 Oracle 数据库作为 Hive 的元数据存储时,我们需要对 Hive 进行相应的配置调整。本文档将详细介绍如何配置 Hive 以便能够利用 Oracle 数据库来管理其元数据信息。 #### 二、安装与配置流程 **1. 下载并...

    Hive_JDBC.zip_hive java_hive jdbc_hive jdbc pom_java hive_maven连

    要使用Hive JDBC,你需要在你的Java Maven项目中添加Hive JDBC的依赖。这可以通过在`pom.xml`文件中配置对应的依赖项来完成。例如: ```xml &lt;groupId&gt;org.apache.hive &lt;artifactId&gt;hive-jdbc &lt;version&gt;3.1.2 ...

    idea 集成使用 hive 需要导入的jar包.rar

    总结来说,为了在IntelliJ IDEA中集成Apache Hive,我们需要准备Hive的JDBC驱动和其他相关依赖库,将它们添加到项目中,然后编写Java代码来连接Hive服务器并执行查询。通过这种方式,开发者可以在熟悉的IDE环境中...

    HIVE安装及详解

    * 数据存储:HIVE使用Hadoop分布式文件系统(HDFS)存储数据,而传统数据库使用关系数据库管理系统(RDBMS) * 数据处理:HIVE使用MapReduce处理数据,而传统数据库使用SQL查询 * 扩展性:HIVE具有高可扩展性,可以...

    Hadoop之hive安装

    我们需要添加如下信息,并继续使用cp命令产生hive-default.xml和hive-site.xml。 在 hive-site.xml 添加信息 在修改完配置文件后,我们需要在hive-site.xml添加如下信息。 切换到 Hadoop 用户下 在设置完hive-...

    Hive开发规范及要点

    2. 使用Hive命令行模式导出数据:使用`hive -e "select day_id,user,count from user_table where day_id in ('2014-03-06','2014-03-07','2014-03-08','2014-03-09','2014-03-10');"&gt; /home/test/test.dat;`语句...

    连接Hive相关Jar包(DBeaver和JDBC均可使用)

    在这个场景下,我们经常需要通过编程接口与Hive进行交互,其中JDBC(Java Database Connectivity)是常用的一种方式。本篇将详细介绍如何在DBeaver和Java应用中使用JDBC连接Hive,以及涉及到的相关Jar包。 DBeaver...

    使用IDEA工具连接CDH集群里面的hive组件

    "使用IDEA工具连接CDH集群里面的hive组件" 使用IDEA工具连接CDH集群里面的hive组件是数据开发中的一项重要任务。本文将详细介绍如何使用IDEA工具连接CDH集群里面的hive组件,包括建立java工程项目、添加hive开发的...

    Spark不能使用hive自定义函数.doc

    4. **配置 Spark Session**:在创建 SparkSession 时,可以通过 `enableHiveSupport()` 方法启用对 Hive 的支持,这样可以确保 Spark 能够访问 Hive 元数据和服务,从而能够使用 Hive UDF。 ```java SparkSession ...

    hive UDF需要jar包

    - **hive-exec-xxx.jar**:这是Hive执行库的一部分,包含了Hive运行时需要的各种类和接口,包括UDF的基类和相关的上下文对象。 - **hadoop-core-xxx.jar**:这是Hadoop的核心库,提供了分布式文件系统(HDFS)和...

    连接hive依赖的jar包_hive连接方式

    Hive可以通过Thrift协议暴露服务,通常使用HTTP或HTTPS作为传输层,因此连接字符串可能形如`jdbc:hive2://hostname:port/;transportMode=http;httpPath=hive.server2.thrift.http.path;principal=kerberos_principal...

    hive搭建及使用入门简介(内含PPT、各种表创建sql及hive搭建使用笔记)

    当进行JOIN操作时,如果两个表在JOIN键上使用了相同的分桶策略,Hive可以使用更高效的MapReduce算法,提升查询效率。 “各种表创建SQL”这部分将详细讲解CREATE TABLE语句的各种用法,包括创建基本表、分区表、分桶...

    Hive2.x系列驱动,

    但在启用Kerberos的安全环境中,Hive驱动需要能够处理额外的身份验证步骤,以确保数据访问的安全性。 从压缩包中的文件名列表,我们可以看出以下几个关键的Hadoop和Hive相关的组件和依赖: 1. hadoop-hdfs-2.6.1....

    kittle连接hive需要的jar包

    当需要使用Kettle与Hive进行交互时,就需要特定的JAR包来建立连接。以下是对标题和描述中提到的知识点的详细解释: 1. **Kettle(PDI)与Hive的连接**: Kettle通过插件与Hive进行通信,这些插件依赖于特定的JAR包...

Global site tag (gtag.js) - Google Analytics