Hive 内置函数

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) 返回组中列的最大值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程