`

hive 内部提供的函数

    博客分类:
  • hive
 
阅读更多

 

 

 

 

字符串函数

字符串长度函数:length

 

Java代码   收藏代码
  1. 语法: length(string A)  
  2. 返回值: int  
  3. 说明:返回字符串A的长度  
  4. 举例:  
  5. hive> select length(‘abcedfg’) from dual;  
  6. 7  

 

 

 

字符串反转函数:reverse

 

Java代码   收藏代码
  1. 语法: reverse(string A)  
  2. 返回值: string  
  3. 说明:返回字符串A的反转结果  
  4. 举例:  
  5. hive> select reverse(‘abcedfg’) from dual;  
  6. gfdecba  

 

 

 

字符串连接函数:concat

 

Java代码   收藏代码
  1. 语法: concat(string A, string B…)  
  2. 返回值: string  
  3. 说明:返回输入字符串连接后的结果,支持任意个输入字符串  
  4. 举例:  
  5. hive> select concat(‘abc’,'def’,'gh’) from dual;  
  6. abcdefgh  

 

 

 

 

带分隔符字符串连接函数:concat_ws

 

Java代码   收藏代码
  1. 语法: concat_ws(string SEP, string A, string B…)  
  2. 返回值: string  
  3. 说明:返回输入字符串连接后的结果,SEP表示各个字符串间的分隔符  
  4. 举例:  
  5. hive> select concat_ws(‘,’,'abc’,'def’,'gh’) from dual;  
  6. abc,def,gh  

 

 

 

 

字符串截取函数:substr,substring

 

Java代码   收藏代码
  1. 语法: substr(string A, int start),substring(string A, int start)  
  2. 返回值: string  
  3. 说明:返回字符串A从start位置到结尾的字符串  
  4. 举例:  
  5. hive> select substr(‘abcde’,3) from dual;  
  6. cde  
  7. hive> select substring(‘abcde’,3) from dual;  
  8. cde  
  9. hive>  select substr(‘abcde’,-1) from dual;  (和ORACLE相同)  
  10. e  

 

 

 

字符串截取函数:substr,substring

 

Java代码   收藏代码
  1. 语法: substr(string A, int start, int len),substring(string A, int start, int len)  
  2. 返回值: string  
  3. 说明:返回字符串A从start位置开始,长度为len的字符串  
  4. 举例:  
  5. hive> select substr(‘abcde’,3,2) from dual;  
  6. cd  
  7. hive> select substring(‘abcde’,3,2) from dual;  
  8. cd  
  9. hive>select substring(‘abcde’,-2,2) from dual;  
  10. de  

 

 

 

 

字符串转大写函数:upper,ucase

 

Java代码   收藏代码
  1. 语法: upper(string A) ucase(string A)  
  2. 返回值: string  
  3. 说明:返回字符串A的大写格式  
  4. 举例:  
  5. hive> select upper(‘abSEd’) from dual;  
  6. ABSED  
  7. hive> select ucase(‘abSEd’) from dual;  
  8. ABSED  

 

 

 

字符串转小写函数:lower,lcase

 

Java代码   收藏代码
  1. 语法: lower(string A) lcase(string A)  
  2. 返回值: string  
  3. 说明:返回字符串A的小写格式  
  4. 举例:  
  5. hive> select lower(‘abSEd’) from dual;  
  6. absed  
  7. hive> select lcase(‘abSEd’) from dual;  
  8. absed  

 

 

 

 

去空格函数:trim

 

Java代码   收藏代码
  1. 语法: trim(string A)  
  2. 返回值: string  
  3. 说明:去除字符串两边的空格  
  4. 举例:  
  5. hive> select trim(‘ abc ‘) from dual;  
  6. abc  

 

 

左边去空格函数:ltrim

 

Java代码   收藏代码
  1. 语法: ltrim(string A)  
  2. 返回值: string  
  3. 说明:去除字符串左边的空格  
  4. 举例:  
  5. hive> select ltrim(‘ abc ‘) from dual;  
  6. abc  

 

 

右边去空格函数:rtrim

 

Java代码   收藏代码
  1. 语法: rtrim(string A)  
  2. 返回值: string  
  3. 说明:去除字符串右边的空格  
  4. 举例:  
  5. hive> select rtrim(‘ abc ‘) from dual;  
  6. abc  

 

 

 

 

 

正则表达式解析函数:regexp_extract

其中的index,是按照正则字符串()的位置

 

Java代码   收藏代码
  1. 语法: regexp_extract(string subject, string pattern, int index)  
  2. 返回值: string  
  3. 说明:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。注意,在有些情况下要使用转义字符  
  4. 举例:  
  5. hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 1) from dual;  
  6. the  
  7. hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 2) from dual;  
  8. bar  
  9. hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 0) from dual;  
  10. foothebar  

 

 

 

 

 

函数parse_url,解析URL字符串

 

Java代码   收藏代码
  1. parse_url(url, partToExtract[, key]) - extracts a part from a URL  
  2. 解析URL字符串,partToExtract的选项包含[HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY,USERINFO]。  
  3.   
  4. 举例:  
  5. * parse_url('http://facebook.com/path/p1.php?query=1''HOST')返回'facebook.com'   
  6. * parse_url('http://facebook.com/path/p1.php?query=1''PATH')返回'/path/p1.php'   
  7. * parse_url('http://facebook.com/path/p1.php?query=1''QUERY')返回'query=1',  
  8. 可以指定key来返回特定参数,例如  
  9. * parse_url('http://facebook.com/path/p1.php?query=1''QUERY','query')返回'1',  
  10.   
  11. * parse_url('http://facebook.com/path/p1.php?query=1#Ref''REF')返回'Ref'   
  12. * parse_url('http://facebook.com/path/p1.php?query=1#Ref''PROTOCOL')返回'http'  

 

json解析函数:get_json_object

语法: get_json_object(string json_string, string path)

Java代码   收藏代码
  1. 返回值: string  
  2. 说明:解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL。  
  3. 举例:  
  4. hive> select  get_json_object(‘{“store”:  
  5. >   {“fruit”:\[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}],  
  6. >    “bicycle”:{“price”:19.95,”color”:”red”}  
  7. >   },  
  8. >  “email”:”amy@only_for_json_udf_test.net”,  
  9. >  “owner”:”amy”  
  10. > }  
  11. > ‘,’$.owner’) from dual;  
  12. amy  

 使用实例:

 

Java代码   收藏代码
  1. select get_json_object('{"store":{"fruit":\["aa","bb","cc"]},"owner":"amy"}','$.store.fruit[0]') from test_msg limit 1;  

 

 

空格字符串函数:space

语法: space(int n)

Java代码   收藏代码
  1. 返回值: string  
  2. 说明:返回长度为n的字符串  
  3. 举例:  
  4. hive> select space(10) from dual;  
  5. hive> select length(space(10)) from dual;  
  6. 10  

 

 

重复字符串函数:repeat

语法: repeat(string str, int n)

Java代码   收藏代码
  1. 返回值: string  
  2. 说明:返回重复n次后的str字符串  
  3. 举例:  
  4. hive> select repeat(‘abc’,5) from dual;  
  5. abcabcabcabcabc  

 

 

首字符ascii函数:ascii

语法: ascii(string str)

Java代码   收藏代码
  1. 返回值: int  
  2. 说明:返回字符串str第一个字符的ascii码  
  3. 举例:  
  4. hive> select ascii(‘abcde’) from dual;  
  5. 97  

 

 

左补足函数:lpad

语法: lpad(string str, int len, string pad)

Java代码   收藏代码
  1. 返回值: string  
  2. 说明:将str进行用pad进行左补足到len位  
  3. 举例:  
  4. hive> select lpad(‘abc’,10,’td’) from dual;  
  5. tdtdtdtabc  

 

 

与GP,ORACLE不同,pad 不能默认

右补足函数:rpad

语法: rpad(string str, int len, string pad)

Java代码   收藏代码
  1. 返回值: string  
  2. 说明:将str进行用pad进行右补足到len位  
  3. 举例:  
  4. hive> select rpad(‘abc’,10,’td’) from dual;  
  5. abctdtdtdt  

 

 

分割字符串函数: split

语法:  split(string str, string pat)

Java代码   收藏代码
  1. 返回值:  array  
  2. 说明: 按照pat字符串分割str,会返回分割后的字符串数组  
  3. 举例:  
  4. hive> select split(‘abtcdtef’,'t’) from dual;  
  5. ["ab","cd","ef"]  

 

 

 

集合查找函数: find_in_set

语法: find_in_set(string str, string strList)

Java代码   收藏代码
  1. 返回值: int  
  2. 说明: 返回str在strlist第一次出现的位置,strlist是用逗号分割的字符串。如果没有找该str字符,则返回0  
  3. 举例:  
  4. hive> select find_in_set(‘ab’,'ef,ab,de’) from dual;  
  5. 2  
  6. hive> select find_in_set(‘at’,'ef,ab,de’) from dual;  
  7. 0  

 

分享到:
评论

相关推荐

    hive UDF需要jar包

    Hive UDF是Hive提供的一个强大特性,它允许用户创建自己的函数来处理数据。这些函数可以是单行输入单行输出的UDF,多行输入单行输出的UDF(UDAF,User Defined Aggregation Function),或者多行输入多行输出的UDTF...

    hive语法和常用函数[归纳].pdf

    "Hive语法和常用函数" Hive是基于Hadoop分布式系统上的数据仓库,最早是由Facebook公司开发的,Hive极大的推进了Hadoop ecosystem在数据仓库方面上的发展。Facebook的分析人员中很多工程师比较擅长SQL而不善于开发...

    hive语法和常用函数.doc

    Hive语法和常用函数 Hive是一个基于Hadoop分布式系统上的数据仓库,由Facebook公司开发的,Hive极大的推进了Hadoop ecosystem在数据仓库方面上的发展。Hive提供了数据仓库的部分功能,包括数据ETL(抽取、转换、...

    hive-笔记--hive常用用法

    内部表和外部表,导入数据,导出数据,将数据从hive的表中导出到本地磁盘目录中,HIVE的存储文件格式,修改表的分区,多重插入,HIVE的自定义函数功能,使用explode —— 行转列,配合lateral view 列转行方便统计,...

    交互式数据分析包括脚本开发任务提交(Spark, Hive)UDF函数资源管理和智能诊断

    在提供的压缩包中,“Scriptis_master.zip”可能包含了Scriptis的源代码或安装包,用户可以借此深入了解其内部工作原理或进行定制化开发。“说明.txt”很可能是对Scriptis的使用指南或者安装步骤的介绍,对于初次...

    基于 Antlr4 的 Hive SQL 解析.zip

    2. **研究Hive SQL语法**:熟悉Hive SQL的特性和与标准SQL的不同之处,例如Hive的JOIN操作、分区查询、窗口函数等。 3. **创建Hive SQL的Antlr4语法规则**:根据Hive SQL的语法特性,编写对应的Antlr4语法规则文件...

    大数据面试 Hive 八股文

    3. **Hive内部表和外部表的区别** - **内部表**:数据与元数据一起管理,删除时会同时删除数据和元数据。 - **外部表**:仅管理元数据,数据存储在用户指定的位置,删除时仅删除元数据。 4. **Hive建表语句** - ...

    HIve UDF 说明书

    在自定义UDF的创建中,Hive官方文档提到了UDF的一些内部机制以及创建自定义UDF的详细步骤。创建自定义UDF时需要关注大小写问题,因为所有Hive关键词(包括操作符和函数名)都是不区分大小写的。 文档还提到了与UDF...

    hive实验报告.docx

    - 使用DDL创建内部表和外部表,内部表的数据存储在HDFS中,由Hive管理;外部表的数据存储在用户指定位置,不随表删除而删除。 - DML操作包括查看表、查看表结构,以及插入、更新和删除数据。 - 分区表的创建有助...

    王家林hive学习资料

    在函数和存储过程方面,课程涵盖了Hive内置函数的使用、自定义聚合函数和表生成函数的开发,以及如何在Hive中编写和使用存储过程。Hive的架构优化是课程的重点,包括降低IO负载、表分区、动态分区、压缩和分布式缓存...

    Hive用户手册中文版.pdf

    Hive元数据库存储了Hive内部的元数据信息,这些信息包括表结构、数据类型和表间关系等,是Hive正常运行所必需的。 Hive支持多种元数据库,包括DERBY和MySQL。DERBY是一个轻量级的数据库,仅适合单用户测试和开发...

    dataiku hive udf

    此外,通过阅读和调试这些源码,还可以提升对Hive内部工作原理的理解,这对于解决实际问题和优化查询性能至关重要。 总之,"dataiku hive udf"项目为Hadoop Hive开发者提供了一座桥梁,通过这座桥,他们可以跨越...

    Hive用户指南 Hive user guide 中文版

    - Hive内部使用MapReduce来执行查询。 #### 八、使用Hive注意事项 - **字符集问题**:在处理文本数据时需要注意字符集的匹配。 - **压缩**:合理选择压缩算法可以显著减少存储空间和提高查询性能。 - **COUNT...

    hive1.2.2源代码

    深入理解Hive 1.2.2源代码有助于我们了解其内部工作机制,例如,解析器如何将SQL语句转化为执行计划,优化器如何优化查询,以及执行器如何将计划转化为实际的分布式计算任务。源代码中包含了各种解析器(如HQL词法...

    大数据系列-Hive

    4. **Hive与外部表**:内部表由Hive管理元数据及数据存储,删除操作会一并删除数据;外部表仅管理元数据,删除时不会影响底层数据,适合已存在的HDFS文件。 5. **Hive UDF(用户自定义函数)**:Hive允许用户扩展其...

    apache-hive-1.2.1源码包(已编译)(含Hive的使用全解)

    在"apache-hive-1.2.1源码包"中,我们可以深入理解Hive的内部工作原理以及其如何与Hadoop生态系统协同工作。 1. **Hive架构** Hive的核心组件包括Metastore、Driver、Compiler、Executor和HMS(Hive Metastore ...

    hive入门.pdf

    Hive提供了丰富的内置函数,以支持常见的数据处理需求。例如数学函数、字符串处理函数、日期函数等。具体函数列表可以参考官方文档或其他相关资料。 #### 四、DDL(数据定义语言) Hive提供了DDL命令来管理数据库...

    apache-hive-2.0.0

    通过阅读源码,你可以深入理解 Hive 内部的工作机制,如表的创建、分区、桶化,以及查询优化等。此外,Hive 的元数据存储在 MySQL 或其他兼容的数据库中,这涉及到数据库设计和交互的知识,也是学习的一部分。 在...

    Hive语法详解.docx (排版清晰,覆盖全面,含目录)

    - **创建内部表**:内部表的数据由Hive直接管理,删除表时会同时删除数据。 - **创建外部表**:外部表的数据独立于表存在,即使删除表,数据也不会被删除。 - **创建分区表**:用于存储按不同键值划分的数据。 - **...

Global site tag (gtag.js) - Google Analytics