- Hive 教程
- Hive - 首页
- Hive - 简介
- Hive - 安装
- Hive - 数据类型
- Hive - 创建数据库
- Hive - 删除数据库
- Hive - 创建表
- Hive - 修改表
- Hive - 删除表
- Hive - 分区
- Hive - 内置运算符
- Hive - 内置函数
- Hive - 视图和索引
- Hive 有用资源
- Hive - 常见问题解答
- Hive - 快速指南
- Hive - 有用资源
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,...) | 返回将B连接到A之后生成的字符串。 |
string | substr(string A, int start) | 返回从起始位置开始到字符串A结尾的A的子字符串。 |
string | substr(string A, int start, int length) | 返回从起始位置开始,长度为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) | 返回使用C替换B中所有与Java正则表达式语法匹配的子字符串后生成的字符串。 |
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纪元(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) | 返回组中列的最大值。 |
广告