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,...) 它返回A之后连接B所产生的字符串。
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) 同上。
string lower(string A) 它返回将B的所有字符转换为小写的字符串。
string lcase(string A) 与上面相同。
string trim(string A) 它返回从A两端修剪空格得到的字符串。
string ltrim(string A) 它返回从A的开头(左侧)修剪空格得到的字符串。
string rtrim(string A) rtrim(string A) rtrim(字符串A)它返回从A的末尾(右侧)修剪空格得到的字符串。
string regexp_replace(string A, string B, string C) 它返回将B中与Java正则表达式语法匹配的所有子串替换为C所产生的字符串。
int size(Map<K.V>) 它返回数组类型中的元素数。
int size(Array<T>) 它返回数组类型中的元素数。
value of <type> cast(<expr> as <type>) 它将表达式expr的结果转换为``,例如cast('1'作为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) 它返回日期或时间戳字符串的年份部分:年(“1970-01-01 00:00:00”)= 1970,年(“1970-01-01”)= 1970
int month(string date) 它返回日期或时间戳字符串的月份部分:月份(“1970-11-01 00:00:00”)= 11,月份(“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) 它返回组中列的最大值。

下一章:Hive 视图和索引

视图根据用户需求生成,您可以将任何结果集数据保存为视图。Hive视图的用法与SQL视图的用法相同。这是一个标准的RDBMS概念。我们可以在视图上执行所有的DML操作。 创建视图您可以在执行SELECT语句时创 ...