Hive 内置函数
本章介绍了Hive中可用的内置函数。这些函数看起来与SQL函数非常相似,只是它们的用法不同。
阅读更多:Hive 教程
内置函数
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) | 返回从start位置开始到字符串A末尾的子字符串。 |
string | substr(string A,int start,int length) | 返回从start位置开始具有给定长度的A子字符串。 |
string | upper(string A) | 返回将A的所有字符转换为大写字母的结果字符串。 |
string | ucase(string A) | 与上述相同。 |
string | lower(string A) | 返回将B的所有字符转换为小写字母的结果字符串。 |
string | lcase(string A) | 与上述相同。 |
string | trim(string A) | 返回从A的两端修剪空格的结果字符串。 |
string | ltrim(string A) | 返回从A的开头(左边)修剪空格的结果字符串。 |
string | rtrim(string A) | 返回从A的末尾(右边)修剪空格的结果字符串。 |
string | regexp_replace(string A,string B,string C) | 返回用C替换所有与Java正则表达式语法匹配的B子字符串的字符串。 |
int | size(Map<K.V>) | 返回map类型中元素的数量。 |
int | size(Array<T>) |
返回数组类型中元素的数量。 |
<type>的值 |
cast(<expr> as <type>) |
将表达式expr的结果转换为<type> ,例如,cast(‘1’ as BIGINT)将字符串’1’转换为它的整数表示形式。如果转换失败,则返回NULL。 |
string | from_unixtime(int unixtime) | 将从Unix Epoch(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) | 返回组中列的最大值。 |