Hive 常用函数

简介: Hive 常用函数

1、系统内置函数

1)查看系统自带的函数

hive> show functions;

2)显示自带的函数的用法

hive> desc function upper;

3)详细显示自带的函数的用法

hive> desc function extended upper;

 

2、常用聚合函数:

count()、sum()、max()、min()、avg()

3、空字段赋值  NVL( valuedefault_value):

NVL:给值为 NULL 的数据赋值,它的格式是 NVL( valuedefault_value)。它的功能是如value NULL,则 NVL 函数返回 default_value 的值,否则返回 value 的值,如果两个参数都为 NULL ,则返回 NULL其中 default_value 可以为字段,也可以为确定的值。

查询:如果员工的 comm NULL,则用 -1 代替

hive (default)> select comm,nvl(comm, -1) from emp;

 

4、行转列、列转行

(1)CONCAT(string A/col, string B/col)

返回输入字符串连接后的结果,支持任意个输入字符串或字段 ;

拼接字符:

结果显示:a-b-c

2CONCAT_WS(separator, str1, str2,...):

第一个参数为一个分隔符,后面都是字符串或字段。如:

结果显示:a-b-c

注意: CONCAT_WS must be "string or array<string>,必须为 String 或 String 数组

 

5、常用日期函数:

unix_timestamp: 返回当前或指定时间的时间戳    

select unix_timestamp();

select unix_timestamp("2020-10-28",'yyyy-MM-dd');

from_unixtime:将时间戳转为日期格式

select from_unixtime(1603843200);

current_date:当前日期

select current_date;

current_timestamp:当前的日期加时间

select current_timestamp;

to_date:抽取日期部分

select to_date('2020-10-28 12:12:12');

year:获取年

select year('2020-10-28 12:12:12');

month:获取月

select month('2020-10-28 12:12:12');

day:获取日

select day('2020-10-28 12:12:12');

hour:获取时

select hour('2020-10-28 12:12:12');

minute:获取分

select minute('2020-10-28 12:12:12');

second:获取秒

select second('2020-10-28 12:12:12');

weekofyear:当前时间是一年中的第几周

select weekofyear('2020-10-28 12:12:12');

dayofmonth:当前时间是一个月中的第几天

select dayofmonth('2020-10-28 12:12:12');

months_between: 两个日期间的月份

select months_between('2020-04-01','2020-10-28');

add_months:日期加减月

select add_months('2020-10-28',-3);

datediff:两个日期相差的天数

select datediff('2020-11-04','2020-10-28');

date_add:日期加天数

select date_add('2020-10-28',4);

date_sub:日期减天数

select date_sub('2020-10-28',-4);

last_day:日期的当月的最后一天

select last_day('2020-02-30');

date_format (): 格式化日期

select date_format('2020-10-28 12:12:12','yyyy/MM/dd HH:mm:ss');

6、常用取整函数:

round: 四舍五入,只保留整数位

select round(3.14);

select round(3.54);

ceil:  向上取整

select ceil(3.14);

select ceil(3.54);

floor: 向下取整

select floor(3.14);

select floor(3.54);

7、常用字符串操作函数:

upper: 转大写

select upper('low');

lower: 转小写

select lower('LOW');

length: 长度

select length("atguigu");

trim:  前后去空格

select trim(" atguigu ");

lpad: 向左补齐,到指定长度。也可以当做截取字符串使用

select lpad('atguigu',9,'g');

结果:ggatguigu

select lpad('atguigu',3,'g');

结果:atg

rpad:  向右补齐,到指定长度。也可以当做截取字符串使用

select rpad('atguigu',9,'g');

结果:atguigugg

select rpad('atguigu',4,'g');

结果:atgu

regexp_replace:使用正则表达式匹配目标字符串,匹配成功后替换!

SELECT regexp_replace('2020/10/25', '/', '-');

结果:2020-10-25

8、集合操作(集合类型用得少,所以集合函数也用得少):

size: 集合中元素的个数

select size(friends) from test3;

map_keys: 返回 map 中的 key

select map_keys(children) from test3;

map_values: 返回 map 中的 value

select map_values(children) from test3;

array_contains: 判断 array 中是否包含某个元素

select array_contains(friends,'bingbing') from test3;

sort_array: 将 array 中的元素排序

select sort_array(friends) from test3;

grouping_set: 多维分析

相关文章
|
7月前
|
SQL HIVE
Hive LAG函数分析
Hive LAG函数分析
87 0
|
7月前
|
SQL JSON Java
Hive【Hive(四)函数-单行函数】
Hive【Hive(四)函数-单行函数】
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
55 4
|
2月前
|
SQL
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
42 2
|
7月前
|
SQL HIVE
hive高频函数(一)
hive高频函数(一)
58 0
|
3月前
|
SQL JavaScript 前端开发
Hive根据用户自定义函数、reflect函数和窗口分析函数
Hive根据用户自定义函数、reflect函数和窗口分析函数
41 6
|
7月前
|
SQL XML JSON
Hive函数全解——思维导图 + 七种函数类型
Hive函数全解——思维导图 + 七种函数类型
157 2
Hive函数全解——思维导图 + 七种函数类型
|
7月前
|
SQL 分布式计算 HIVE
Hive Cli / HiveServer2 中使用 dayofweek 函数引发的BUG!
在Hive 3.1.2和Spark 3.0.2集群环境中,遇到`dayofweek`函数bug。当`create_date`为字符串类型时,`dayofweek`函数结果错位。修复方法是将`create_date`转换为`date`类型。在Spark SQL中,原始代码能正常运行,未出现此问题。因此建议在Hive中使用转换后的日期类型以避免错误。
90 4
|
7月前
|
SQL HIVE
【Hive SQL】字符串操作函数你真的会用吗?
本文介绍了SQL中判断字符串是否包含子串的几种方法。`IN`函数判断元素是否完全等于给定元素组中的某项,而非包含关系。`INSTR`和`LOCATE`函数返回子串在字符串中首次出现的位置,用于检测是否存在子串。`SUBSTR`则用于提取字符串的子串。`LIKE`用于模糊匹配,常与通配符配合使用。注意`IN`并非用于判断子串包含。
516 3
|
7月前
|
SQL HIVE 索引
Hive【Hive(五)函数-高级聚合函数、炸裂函数】
Hive【Hive(五)函数-高级聚合函数、炸裂函数】