Hive 简明教程

Hive - Built-in Functions

本章解释了 Hive 中可用的内建函数。这些函数除了用法外,都与 SQL 函数十分相似。

Built-In Functions

Hive 支持以下内建函数:

Return Type

Signature

Description

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)

Same as above.

string

lower(string A)

它返回将 B 中所有字符转换为小写后的结果串。

string

lcase(string A)

Same as above.

string

trim(string A)

它返回将 A 两端的空格去除后的结果串。

string

ltrim(string A)

它返回将 A 开头(左侧)的空格去除后的结果串。

string

rtrim(string A)

rtrim(string A) 它返回将 A 结尾(右侧)的空格去除后的结果串。

string

regexp_replace(string A, string B, string C)

它返回将 B 中所有与 Java 正则表达式语法匹配的子串替换为 C 后的结果串。

int

size(Map<K.V>)

它返回 map 类型的元素数量。

int

size(Array<T>)

它返回 array 类型的元素数量。

value of <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。

Example

以下查询演示了一些内置函数:

round() function

hive> SELECT round(2.6) from temp;

在成功执行查询后,您可以看到以下响应:

3.0

floor() function

hive> SELECT floor(2.6) from temp;

在成功执行查询后,您可以看到以下响应:

2.0

ceil() function

hive> SELECT ceil(2.6) from temp;

在成功执行查询后,您可以看到以下响应:

3.0

Aggregate Functions

Hive 支持以下内置 aggregate functions 。这些函数的使用与 SQL 聚合函数相同。

Return Type

Signature

Description

BIGINT

count(*), count(expr),

count(*) - 返回检索到的总行数。

DOUBLE

sum(col), sum(DISTINCT col)

返回组中元素的总和或组中列的唯一值总和。

DOUBLE

avg(col), avg(DISTINCT col)

返回组中元素的平均值或组中列的唯一值平均值。

DOUBLE

min(col)

返回组中列的最小值。

DOUBLE

max(col)

返回组中列的最大值。