Hive 内置函数


本章介绍 Hive 中可用的内置函数。这些函数看起来与 SQL 函数非常相似,除了它们的用法。

内置函数


Hive 支持以下内置函数:

返回类型 签名 描述
BIGINT 圆形(双a) 它返回 double 的舍入 BIGINT 值。
BIGINT 地板(双a) 它返回等于或小于双精度的最大 BIGINT 值。
BIGINT ceil(双a) 它返回等于或大于双精度的最小 BIGINT 值。
double rand(), rand(int 种子) 它返回一个随行变化的随机数。
string 连接(字符串 A,字符串 B,...) 它返回在 A 之后连接 B 得到的字符串。
string substr(字符串 A,int 开始) 它返回从起始位置到字符串 A 结尾的 A 的子字符串。
string substr(字符串 A,int 开始,int 长度) 它返回从给定长度的起始位置开始的 A 的子字符串。
string 上(字符串 A) 它返回将 A 的所有字符转换为大写的字符串。
string 用例(字符串 A) 和上面一样。
string 较低(字符串 A) 它返回将 B 的所有字符转换为小写的字符串。
string lcase(字符串 A) 和上面一样。
string 修剪(字符串 A) 它返回从 A 的两端修剪空格产生的字符串。
string ltrim(字符串 A) 它返回从 A 的开头(左侧)修剪空格产生的字符串。
string rtrim(字符串 A) rtrim(字符串 A) 它返回从 A 的末尾(右侧)修剪空格产生的字符串。
string regexp_replace(字符串 A,字符串 B,字符串 C) 它返回将 B 中与 Java 正则表达式语法匹配的所有子字符串替换为 C 所产生的字符串。
int 大小(地图) 它返回地图类型中的元素数量。
int 大小(数组) 它返回数组类型中的元素数。
<类型> 的值 cast( as ) 它将表达式 expr 的结果转换为 例如cast('1' as BIGINT) 将字符串 '1' 转换为整数表示。如果转换不成功,则返回 NULL。
string from_unixtime(int unixtime) 将 Unix 纪元 (1970-01-01 00:00:00 UTC) 的秒数转换为表示当前系统时区中该时刻时间戳的字符串,格式为“1970-01-01 00:00: 00"
string to_date(字符串时间戳) 它返回时间戳字符串的日期部分:to_date("1970-01-01 00:00:00") = "1970-01-01"
int 年份(字符串日期) 它返回日期或时间戳字符串的年份部分: year("1970-01-01 00:00:00") = 1970, year("1970-01-01") = 1970
int 月(字符串日期) 它返回日期或时间戳字符串的月份部分:month("1970-11-01 00:00:00") = 11, month("1970-11-01") = 11
int 日(字符串日期) 它返回日期或时间戳字符串的日期部分:day("1970-11-01 00:00:00") = 1, day("1970-11-01") = 1
string get_json_object(string json_string, 字符串路径) 它根据指定的 json 路径从 json 字符串中提取 json 对象,并返回提取的 json 对象的 json 字符串。如果输入的 json 字符串无效,则返回 NULL。

例子

以下查询演示了一些内置函数:

round() 函数

hive> SELECT round(2.6) from temp;

成功执行查询后,你会看到以下响应:

3.0

地板()函数

hive> SELECT floor(2.6) from temp;

成功执行查询后,你将看到以下响应:

2.0

ceil() 函数

hive> SELECT ceil(2.6) from temp;

成功执行查询后,你将看到以下响应:

3.0

聚合函数


Hive 支持以下内置 聚合函数 .这些函数的用法与 SQL 聚合函数相同。

返回类型 签名 描述
BIGINT 计数(*),计数(表达式), count(*) - 返回检索到的总行数。
DOUBLE 总和(列),总和(DISTINCT 列) 它返回组中元素的总和或组中列的不同值的总和。
DOUBLE 平均(列),平均(不同列) 它返回组中元素的平均值或组中列的不同值的平均值。
DOUBLE min(col) 它返回组中列的最小值。
DOUBLE max(col) 它返回组中列的最大值。