Hive 内置函数
本章解释了 Hive 中可用的内置函数。这些函数看起来与 SQL 函数非常相似,只是它们的用法不同。
内置功能
Hive 支持以下内置函数:
返回类型 |
签名 |
说明 |
BIGINT |
round(double a) |
它返回双精度的舍入 BIGINT 值。 |
BIGINT |
floor(double A) |
它返回等于或小于 double 的最大 BIGINT 值。 |
BIGINT |
ceil(double a) |
它返回等于或大于双精度值的最小 BIGINT 值。 |
double |
rand(), rand(int seed) |
它返回一个随行变化的随机数。 |
string |
concat(string A, string B,...) |
它返回在 A 之后连接 B 产生的string。 |
string |
substr(string A, int start) |
返回A的子串从起始位置到stringA的结尾。 |
string |
substr(string A, int start, int length) |
返回从起始位置开始给定长度的A的子串。 |
string |
upper(string A) |
它返回将 A 的所有字符转换为大写的string。 |
string |
ucase(stringA) |
同上。 |
string |
lower(stringA) |
它返回将 B 的所有字符转换为小写的string。 |
string |
lcase(string A) |
同上。 |
string |
trim(string A) |
它返回从 A 两端修剪空格产生的string。 |
string |
ltrim(string A) |
它返回从 A 的开头(左侧)修剪空格产生的string。 |
string |
rtrim(stringA) |
rtrim(string A) 它返回从 A 的末尾(右侧)修剪空格产生的string。 |
string |
regexp_replace(string A, string B, string C) |
它返回用 C 替换 B 中与 Java 正则表达式语法匹配的所有子string所产生的string。 |
int |
size(Map<K.V>) |
它返回地图类型中元素的数量。 |
int |
size(Array<T>) |
返回数组类型的元素个数。 |
value of <type> |
cast(<expr> as <type>) |
它将表达式 expr 的结果转换为 <type> 例如cast('1' as BIGINT) 将string '1' 转换为整数表示。如果转换不成功,则返回 NULL。 |
string |
from_unixtime(int unixtime) |
将 Unix 纪元 (1970-01-01 00:00:00 UTC) 的秒数转换为表示当前系统时区中那个时刻的时间戳的string,格式为"1970-01-01 00" :00:00" |
string |
to_date(string timestamp) |
它返回时间戳string的日期部分:to_date("1970-01-01 00:00:00") = "1970-01-01" |
int |
year(string date) |
它返回日期或时间戳string的年份部分: year("1970-01-01 00:00:00") = 1970, year("1970-01-01") = 1970 |
int |
month(string date) |
它返回日期的月份部分或时间戳string:month("1970-11-01 00:00:00") = 11,month("1970-11-01") = 11 |
int |
day(string date) |
它返回日期的天部分或时间戳string:day("1970-11-01 00:00:00") = 1, day("1970-11-01") = 1 |
string |
get_json_object(string json_string, string path) |
根据指定的json路径从jsonstring中提取json对象,并返回提取的json对象的jsonstring。如果输入的 json string无效,则返回 NULL。 |
示例
以下查询演示了一些内置函数:
round() 函数
hive> SELECT round(2.6) from temp;
成功执行查询后,您将看到以下响应:
floor() 函数
hive> SELECT floor(2.6) from temp;
成功执行查询后,您将看到以下响应:
ceil() 函数
hive> SELECT ceil(2.6) from temp;
成功执行查询后,您将看到以下响应:
聚合函数
Hive 支持以下内置的
聚合函数。这些函数的用法和SQL聚合函数一样。
返回类型 |
签名 |
说明 |
BIGINT |
count(*), count(expr), |
count(*)-返回检索到的总行数。 |
DOUBLE |
sum(col), sum(DISTINCT col) |
它返回组中元素的总和或组中列的不同值的总和。 |
DOUBLE |
avg(col), avg(DISTINCT col) |
它返回组中元素的平均值或组中列的不同值的平均值。 |
DOUBLE |
min(col) |
返回组中列的最小值。 |
DOUBLE |
max(col) |
返回组中列的最大值。 |