字符串函数
字符串长度函数:length
- 语法: length(string A)
- 返回值: int
- 说明:返回字符串A的长度
- 举例:
- hive> select length(‘abcedfg’) from dual;
- 7
字符串反转函数:reverse
- 语法: reverse(string A)
- 返回值: string
- 说明:返回字符串A的反转结果
- 举例:
- hive> select reverse(‘abcedfg’) from dual;
- gfdecba
字符串连接函数:concat
- 语法: concat(string A, string B…)
- 返回值: string
- 说明:返回输入字符串连接后的结果,支持任意个输入字符串
- 举例:
- hive> select concat(‘abc’,'def’,'gh’) from dual;
- abcdefgh
带分隔符字符串连接函数:concat_ws
- 语法: concat_ws(string SEP, string A, string B…)
- 返回值: string
- 说明:返回输入字符串连接后的结果,SEP表示各个字符串间的分隔符
- 举例:
- hive> select concat_ws(‘,’,'abc’,'def’,'gh’) from dual;
- abc,def,gh
字符串截取函数:substr,substring
- 语法: substr(string A, int start),substring(string A, int start)
- 返回值: string
- 说明:返回字符串A从start位置到结尾的字符串
- 举例:
- hive> select substr(‘abcde’,3) from dual;
- cde
- hive> select substring(‘abcde’,3) from dual;
- cde
- hive> select substr(‘abcde’,-1) from dual; (和ORACLE相同)
- e
字符串截取函数:substr,substring
- 语法: substr(string A, int start, int len),substring(string A, int start, int len)
- 返回值: string
- 说明:返回字符串A从start位置开始,长度为len的字符串
- 举例:
- hive> select substr(‘abcde’,3,2) from dual;
- cd
- hive> select substring(‘abcde’,3,2) from dual;
- cd
- hive>select substring(‘abcde’,-2,2) from dual;
- de
字符串转大写函数:upper,ucase
- 语法: upper(string A) ucase(string A)
- 返回值: string
- 说明:返回字符串A的大写格式
- 举例:
- hive> select upper(‘abSEd’) from dual;
- ABSED
- hive> select ucase(‘abSEd’) from dual;
- ABSED
字符串转小写函数:lower,lcase
- 语法: lower(string A) lcase(string A)
- 返回值: string
- 说明:返回字符串A的小写格式
- 举例:
- hive> select lower(‘abSEd’) from dual;
- absed
- hive> select lcase(‘abSEd’) from dual;
- absed
去空格函数:trim
- 语法: trim(string A)
- 返回值: string
- 说明:去除字符串两边的空格
- 举例:
- hive> select trim(‘ abc ‘) from dual;
- abc
左边去空格函数:ltrim
- 语法: ltrim(string A)
- 返回值: string
- 说明:去除字符串左边的空格
- 举例:
- hive> select ltrim(‘ abc ‘) from dual;
- abc
右边去空格函数:rtrim
- 语法: rtrim(string A)
- 返回值: string
- 说明:去除字符串右边的空格
- 举例:
- hive> select rtrim(‘ abc ‘) from dual;
- abc
正则表达式解析函数:regexp_extract
其中的index,是按照正则字符串()的位置
- 语法: regexp_extract(string subject, string pattern, int index)
- 返回值: string
- 说明:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。注意,在有些情况下要使用转义字符
- 举例:
- hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 1) from dual;
- the
- hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 2) from dual;
- bar
- hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 0) from dual;
- foothebar
函数parse_url,解析URL字符串
- parse_url(url, partToExtract[, key]) - extracts a part from a URL
- 解析URL字符串,partToExtract的选项包含[HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY,USERINFO]。
- 举例:
- * parse_url('http://facebook.com/path/p1.php?query=1', 'HOST')返回'facebook.com'
- * parse_url('http://facebook.com/path/p1.php?query=1', 'PATH')返回'/path/p1.php'
- * parse_url('http://facebook.com/path/p1.php?query=1', 'QUERY')返回'query=1',
- 可以指定key来返回特定参数,例如
- * parse_url('http://facebook.com/path/p1.php?query=1', 'QUERY','query')返回'1',
- * parse_url('http://facebook.com/path/p1.php?query=1#Ref', 'REF')返回'Ref'
- * 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)
- 返回值: string
- 说明:解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL。
- 举例:
- hive> select get_json_object(‘{“store”:
- > {“fruit”:\[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}],
- > “bicycle”:{“price”:19.95,”color”:”red”}
- > },
- > “email”:”amy@only_for_json_udf_test.net”,
- > “owner”:”amy”
- > }
- > ‘,’$.owner’) from dual;
- amy
使用实例:
- select get_json_object('{"store":{"fruit":\["aa","bb","cc"]},"owner":"amy"}','$.store.fruit[0]') from test_msg limit 1;
空格字符串函数:space
语法: space(int n)
- 返回值: string
- 说明:返回长度为n的字符串
- 举例:
- hive> select space(10) from dual;
- hive> select length(space(10)) from dual;
- 10
重复字符串函数:repeat
语法: repeat(string str, int n)
- 返回值: string
- 说明:返回重复n次后的str字符串
- 举例:
- hive> select repeat(‘abc’,5) from dual;
- abcabcabcabcabc
首字符ascii函数:ascii
语法: ascii(string str)
- 返回值: int
- 说明:返回字符串str第一个字符的ascii码
- 举例:
- hive> select ascii(‘abcde’) from dual;
- 97
左补足函数:lpad
语法: lpad(string str, int len, string pad)
- 返回值: string
- 说明:将str进行用pad进行左补足到len位
- 举例:
- hive> select lpad(‘abc’,10,’td’) from dual;
- tdtdtdtabc
与GP,ORACLE不同,pad 不能默认
右补足函数:rpad
语法: rpad(string str, int len, string pad)
- 返回值: string
- 说明:将str进行用pad进行右补足到len位
- 举例:
- hive> select rpad(‘abc’,10,’td’) from dual;
- abctdtdtdt
分割字符串函数: split
语法: split(string str, string pat)
- 返回值: array
- 说明: 按照pat字符串分割str,会返回分割后的字符串数组
- 举例:
- hive> select split(‘abtcdtef’,'t’) from dual;
- ["ab","cd","ef"]
集合查找函数: find_in_set
语法: find_in_set(string str, string strList)
- 返回值: int
- 说明: 返回str在strlist第一次出现的位置,strlist是用逗号分割的字符串。如果没有找该str字符,则返回0
- 举例:
- hive> select find_in_set(‘ab’,'ef,ab,de’) from dual;
- 2
- hive> select find_in_set(‘at’,'ef,ab,de’) from dual;
- 0
相关推荐
Hive UDF是Hive提供的一个强大特性,它允许用户创建自己的函数来处理数据。这些函数可以是单行输入单行输出的UDF,多行输入单行输出的UDF(UDAF,User Defined Aggregation Function),或者多行输入多行输出的UDTF...
"Hive语法和常用函数" Hive是基于Hadoop分布式系统上的数据仓库,最早是由Facebook公司开发的,Hive极大的推进了Hadoop ecosystem在数据仓库方面上的发展。Facebook的分析人员中很多工程师比较擅长SQL而不善于开发...
Hive语法和常用函数 Hive是一个基于Hadoop分布式系统上的数据仓库,由Facebook公司开发的,Hive极大的推进了Hadoop ecosystem在数据仓库方面上的发展。Hive提供了数据仓库的部分功能,包括数据ETL(抽取、转换、...
内部表和外部表,导入数据,导出数据,将数据从hive的表中导出到本地磁盘目录中,HIVE的存储文件格式,修改表的分区,多重插入,HIVE的自定义函数功能,使用explode —— 行转列,配合lateral view 列转行方便统计,...
在提供的压缩包中,“Scriptis_master.zip”可能包含了Scriptis的源代码或安装包,用户可以借此深入了解其内部工作原理或进行定制化开发。“说明.txt”很可能是对Scriptis的使用指南或者安装步骤的介绍,对于初次...
2. **研究Hive SQL语法**:熟悉Hive SQL的特性和与标准SQL的不同之处,例如Hive的JOIN操作、分区查询、窗口函数等。 3. **创建Hive SQL的Antlr4语法规则**:根据Hive SQL的语法特性,编写对应的Antlr4语法规则文件...
3. **Hive内部表和外部表的区别** - **内部表**:数据与元数据一起管理,删除时会同时删除数据和元数据。 - **外部表**:仅管理元数据,数据存储在用户指定的位置,删除时仅删除元数据。 4. **Hive建表语句** - ...
在自定义UDF的创建中,Hive官方文档提到了UDF的一些内部机制以及创建自定义UDF的详细步骤。创建自定义UDF时需要关注大小写问题,因为所有Hive关键词(包括操作符和函数名)都是不区分大小写的。 文档还提到了与UDF...
- 使用DDL创建内部表和外部表,内部表的数据存储在HDFS中,由Hive管理;外部表的数据存储在用户指定位置,不随表删除而删除。 - DML操作包括查看表、查看表结构,以及插入、更新和删除数据。 - 分区表的创建有助...
在函数和存储过程方面,课程涵盖了Hive内置函数的使用、自定义聚合函数和表生成函数的开发,以及如何在Hive中编写和使用存储过程。Hive的架构优化是课程的重点,包括降低IO负载、表分区、动态分区、压缩和分布式缓存...
Hive元数据库存储了Hive内部的元数据信息,这些信息包括表结构、数据类型和表间关系等,是Hive正常运行所必需的。 Hive支持多种元数据库,包括DERBY和MySQL。DERBY是一个轻量级的数据库,仅适合单用户测试和开发...
此外,通过阅读和调试这些源码,还可以提升对Hive内部工作原理的理解,这对于解决实际问题和优化查询性能至关重要。 总之,"dataiku hive udf"项目为Hadoop Hive开发者提供了一座桥梁,通过这座桥,他们可以跨越...
- Hive内部使用MapReduce来执行查询。 #### 八、使用Hive注意事项 - **字符集问题**:在处理文本数据时需要注意字符集的匹配。 - **压缩**:合理选择压缩算法可以显著减少存储空间和提高查询性能。 - **COUNT...
深入理解Hive 1.2.2源代码有助于我们了解其内部工作机制,例如,解析器如何将SQL语句转化为执行计划,优化器如何优化查询,以及执行器如何将计划转化为实际的分布式计算任务。源代码中包含了各种解析器(如HQL词法...
4. **Hive与外部表**:内部表由Hive管理元数据及数据存储,删除操作会一并删除数据;外部表仅管理元数据,删除时不会影响底层数据,适合已存在的HDFS文件。 5. **Hive UDF(用户自定义函数)**:Hive允许用户扩展其...
在"apache-hive-1.2.1源码包"中,我们可以深入理解Hive的内部工作原理以及其如何与Hadoop生态系统协同工作。 1. **Hive架构** Hive的核心组件包括Metastore、Driver、Compiler、Executor和HMS(Hive Metastore ...
Hive提供了丰富的内置函数,以支持常见的数据处理需求。例如数学函数、字符串处理函数、日期函数等。具体函数列表可以参考官方文档或其他相关资料。 #### 四、DDL(数据定义语言) Hive提供了DDL命令来管理数据库...
通过阅读源码,你可以深入理解 Hive 内部的工作机制,如表的创建、分区、桶化,以及查询优化等。此外,Hive 的元数据存储在 MySQL 或其他兼容的数据库中,这涉及到数据库设计和交互的知识,也是学习的一部分。 在...
- **创建内部表**:内部表的数据由Hive直接管理,删除表时会同时删除数据。 - **创建外部表**:外部表的数据独立于表存在,即使删除表,数据也不会被删除。 - **创建分区表**:用于存储按不同键值划分的数据。 - **...