内置函数
Hive支持以下内置函数:
返回类型 |
签名 |
描述 |
BIGINT |
round(double a) |
它返回双精度的四舍五入的BIGINT值。 |
BIGINT |
floor(double a) |
它返回等于或小于双精度值的最大BIGINT值。 |
BIGINT |
ceil(double a) |
它返回等于或大于双精度数的最小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) |
它返回从A的末端(右侧)修剪空格得到的字符串。 |
string |
regexp_replace(string A, string B, string C) |
它返回将B中所有与Java正则表达式语法匹配的子字符串替换为C所得到的字符串。 |
int |
size(Map<K.V>) |
它返回Map类型中的元素数。 |
int |
size(Array<T>) |
它返回数组类型中的元素数。 |
value of <type> |
cast(<expr> as <type>) |
它将表达式expr的结果转换为&lt; 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。 |
例 - 以下查询演示了一些内置函数:
round() 函数
hive> SELECT round(2.6) from temp;
成功执行查询后,您将看到以下响应:
floor() 函数
hive> SELECT floor(2.6) from temp;
成功执行查询后,您将看到以下响应:
ceil() 函数
hive> SELECT ceil(2.6) from temp;
成功执行查询后,您将看到以下响应: