Hive - 内置函数
本章介绍 Hive 中可用的内置函数。这些函数看起来与 SQL 函数非常相似,只是用法不同。
内置函数
Hive 支持以下内置函数:
返回类型 | 签名 | 描述 |
---|---|---|
BIGINT | round(double a) | 返回 double 的四舍五入后的 BIGINT 值。 |
BIGINT | floor(double a) | 返回等于或小于 double 的最大 BIGINT 值。 |
BIGINT | ceil(double a) | 返回等于或大于 double 的最小 BIGINT 值。 |
double | rand(), rand(int seed) | 返回一个逐行变化的随机数。 |
string | concat(string A, string B,...) | 返回将 B 连接到 A 后得到的字符串。 |
string | substr(string A, int start) | 返回从起始位置到字符串 A 末尾的 A 子字符串。 |
string | substr(string A, int start, int length) | 返回从起始位置开始的给定长度的 A 子字符串。 |
string | upper(string A) | 返回将 A 的所有字符转换为大写后得到的字符串。 |
string | ucase(string A) | 同上。 | 字符串 | lower(string A) | 返回将 B 的所有字符转换为小写后得到的字符串。 |
字符串 | lcase(string A) | 同上。 |
字符串 | trim(string A) | 返回从 A 两端修剪空格后得到的字符串。 |
字符串 | ltrim(string A) | 返回从 A 开头(左侧)修剪空格后得到的字符串A。 |
字符串 | rtrim(string A) | rtrim(string A) 它返回从 A 的末尾(右侧)修剪空格后得到的字符串。 |
字符串 | regexp_replace(字符串 A, 字符串 B, 字符串 C) | 它返回用 C 替换 B 中所有与 Java 正则表达式语法匹配的子字符串后得到的字符串。 |
int | size(Map<K.V>) | 它返回映射类型中的元素数量。 |
int | size(Array<T>) | 它返回数组类型中的元素数量。 |
<type> 的值 | cast(<expr> as <type>) | 它将表达式 expr 的结果转换为 <type> 例如 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(string timestamp) | 返回时间戳字符串的日期部分:to_date("1970-01-01 00:00:00") = "1970-01-01" |
int | year(string date) | 返回日期或时间戳字符串的年份部分:year("1970-01-01 00:00:00") = 1970, year("1970-01-01") = 1970 |
int | month(string date) | 返回日期或时间戳字符串的月份部分:month("1970-11-01 00:00:00") = 11, month("1970-11-01") = 11 |
int | day(string date) | 返回日期或时间戳字符串的日期部分:day("1970-11-01 00:00:00") = 1, day("1970-11-01") = 1 |
string | get_json_object(string json_string, string path) | 根据指定的json路径从json字符串中提取json对象,并返回提取的json对象的json字符串。如果输入的json字符串无效,则返回NULL。 |
示例
以下查询演示了一些内置函数:
round() 函数
hive> SELECT round(2.6) from temp;
查询执行成功后,您将看到以下响应:
3.0
floor() 函数
hive> SELECT floor(2.6) from temp;
查询执行成功后,您将看到以下响应:
2.0
ceil() 函数
hive> SELECT ceil(2.6) from temp;
查询执行成功后,您将看到以下响应:
3.0
聚合函数
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) | 返回组中列的最大值。 |