Hive内置函数全解析:数学、字符串、日期、条件、转换及行转列技巧
2021年大数据Hive(五):Hive的内置函数(数学、字符串、日期、条件、转换、行转列)
Hive函数主要分为三类:聚合函数、内置函数和建表函数。
本文重点研究内置函数,包括数学、字符串、日期运算、条件判断和数据转换等函数,以及行转换为列的实用技术。
###数学函数
1.**舍入功能**:圆形、地板和天花板。
Floor(double):返回等于或小于Double变量的最大整数。
ceil(doublea):返回等于或大于Double变量的最小整数。
示例:执行“round(3.1415926)”后,结果为3。
2.**随机数函数**:rand。
示例:运行rand()两次可能会产生不同的结果。
3.**电源操作功能**:pow。
示例:执行pow(2,4)后结果为16.0。
4.**绝对值函数**:abs。
示例:执行abs(-3.9)后结果为3.9。
###字符串函数
1.**长度函数**:长度。
示例:执行length('abcedfg')后的结果是7。
2.**反转功能**:反转。
示例:执行reverse("abcedfg")后的结果是gfdecba。
3.**连接函数**:concat。
示例:执行concat('hello','world')后的结果是helloworld。
4.**断开连接函数**:concat_ws。
SEP表示每个字符串之间的分隔符
示例:执行concat_ws(',','abc','def','gh')后结果为abc,def,gh。
5.**截取**:substr,子串。
返回从起始位置开始且长度为len的字符串。
示例:执行substr('abcde',3)后的结果是cde。
###日期函数
1.**获取当前UNIX时间戳**:unix_timestamp。
示例:执行unix_timestamp()后的结果是当前的UNIX时间戳。
2.**迄今为止的UNIX时间戳**:from_unixtime。
示例:执行from_unixtime(1598079966,'yyyy-MM-ddHH:mm:ss')后的结果为2020-08-2215:06:06。
###条件函数
1.**如果函数**。
示例:执行if(1=2,100,200)后结果为200。
2.**案例功能**。
示例:执行case100when50then'tom'when100then'mary'else'tim'end后的结果是mary。
###转换函数
使用转换函数可以转换数据类型,例如:B.将“String”类型的数据转换为“Integer”或“Date”类型。
###插入Column
使用concat_ws、collect_set等函数将多行数据转换为字段列。
以上功能可以实现复杂的数据处理和转换,提高数据分析的效率和准确性。
hive中的SUBSTRING()函数学习
在Hive的数据处理中,SUBSTRING()函数发挥着重要作用,有助于从字符串中提取所需的部分。这个功能对于Hive新手和老手来说都非常有用。
了解有关其用法、语法和示例的更多信息。
SUBSTRING()函数的核心功能是根据指定的起始位置和长度截取字符串。
其基本语法为:SUBSTRING(input_string,start_position,length)现在我们通过一些例子来直观地体验一下SUBSTRING()的用法:1.String"Hello,World!"想要获取以下值:"World""对于这部分,执行:SUBSTRING("Hello,World!",7,5)这将返回“World”。
2.对于字符串“Hiveispowerful”:从第5个字符中提取6个字符:SUBSTRING("Hiveispowerful",5,6)这将得到“iveis”。
使用SUBSTRING()时需要记住一些事项。
-起始位置从1开始计算,而不是从0开始计算。
-如果长度参数超过字符串的长度,则函数将截断到字符串的末尾。
-如果起始位置大于字符串长度,则结果为空字符串。
通过上面的内容,你应该已经了解了Hive的SUBSTRING()函数的基本用法。
在实际项目中,您可以通过不断练习和理解此功能来提高Hive查询的效率。