Hive教程

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;
成功执行查询后,您将看到以下响应:
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) 返回组中列的最大值。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4