Hive----常用函数

简介: 常用函数

系统内置函数:

查看系统内置函数:show functions;

查看一个函数的用法:desc funtion 函数名;

查看一个函数的具体用法:desc function extended 函数名;

 

时间处理函数:

1、unix_timestamp:

select unix_timestamp();

返回当前时间的时间戳

select unix_timestamp('2021-11-03 14:42:33');

返回指定日期(须为标准化格式)的时间戳

select unix_timestamp('20211103 14:42:33','yyyyMMdd HH:mm:ss');

返回指定日期(任意格式,需要将字符串日期格式化)的时间戳

注:unix_timestamp 可以将任意不规则的日期格式转化为时间戳,再通过from_unixtime 就可转成需要的日期格式!

 

2、from_unixtime:将时间戳以指定的时间格式返回(不指定的话,返回标准化时间)

select from_unixtime(1635921753,'yyyy--MM/dd HH:mm:ss');

from_utc_timestamp(ts*1000,'GMT+8'):将时间戳转化为指定时区的时间(GMT+8表示东八区;函数默认单位为毫秒,ts单位为秒,所以要*1000)

例:把时间戳转化为固定格式

date_format(from_utc_timestamp(1635921753000,'GMT+8'), 'yyyy-MM-dd HH:mm:ss')

 

3、current_timestamp:返回当前时间,精确到毫秒(注:返回的是标准化格式时间,而不是时间戳)

select current_timestamp;

例:2022-03-24 17:33:45.246

 

4、current_date:返回当前日期,精确到天

select current_date;

 

5、to_date:提取一个字符串中的日期部分,这个日期必须符合标准化时间格式

select to_date('2021-11-03 14:42:33');

 

6、提取年、月、日、时、分、秒

select year ('2021-11-03 14:42:33');

select month ('2021-11-03 14:42:33');

select day ('2021-11-03 14:42:33');

select hour ('2021-11-03 14:42:33');

select minute ('2021-11-03 14:42:33');

select second ('2021-11-03 14:42:33');

 

7、weekofyear:计算指定日期是当年的第几周

select weekofyear('2021-11-03 14:42:33');

 

8、dayofmonth:计算指定日期是当月的第几天

select dayofmonth('2021-11-03 14:42:33');

 

9、months_between(date1,date2):计算date1和date2之间相距几个月,前减后

select months_between('2020-11-03 14:42:33','2021-11-03 14:42:33');

 

10、add_months:计算指定日期,加上指定月数后的日期

select add_months('2020-11-03', 12);

 

11、datediff:计算两个日期相距天数,前减后

select datediff('2020-11-03 14:42:33','2021-11-03 14:42:33');

 

12、date_add:计算指定日期,加上指定天数后的日期

select date_add('2020-11-03', 12);

 

13、date_sub:计算指定日期,减去指定天数后的日期

select date_sub('2020-11-03', 12);

 

14、last_day:计算指定日期当月的最后一天

select last_day('2020-11-03 14:42:33');

 

15、date_format:将标准化格式的时间,改为其他任意格式(字符串--->日期)

select date_format('2020-11-03 14:42:33','yyyy&MM&dd HHmmss');

 

 

--------------------------------------------------------------------------------------------------------------------------------

 

数字处理函数:

sum

求和,自动过滤掉null值

avg

求平均数,自动过滤掉null值

max

求最大值,自动过滤掉null值

min

求最小值,自动过滤掉null值

count

计数

round

四舍五入,可以传一个参数,默认取整;传第二个参数保留小数的个数

例: round(12.34)  --->12

round(12.34,1)  --->12.3

round(12.34,-1)  --->10

floor

向下取整

例: floor(12.56)  --->12

ceil/ceiling

向上取整
例: ceil(12.56)  --->13

 

--------------------------------------------------------------------------------------------------------------------------------

 

集合处理函数:

size

返回一个数组中的元素个数

map_keys

返回一个map中所有的key组成的数组

map_values

返回一个map中所有的value组成的数组

array_contains

判断一个数组中是否包含某元素

sort_array

将数组中的元素排序后返回

 

--------------------------------------------------------------------------------------------------------------------------------

类型转换函数

 

cast (字段 as 数据类型)

cast 做强制类型转化,不做四舍五入

例:cast(age as bigint)

cast(123.5678 as decimal(16,2))  --->123.56


目录
相关文章
|
4月前
|
SQL HIVE
Hive LAG函数分析
Hive LAG函数分析
64 0
|
4月前
|
SQL JSON Java
Hive【Hive(四)函数-单行函数】
Hive【Hive(四)函数-单行函数】
|
7天前
|
SQL JavaScript 前端开发
Hive根据用户自定义函数、reflect函数和窗口分析函数
Hive根据用户自定义函数、reflect函数和窗口分析函数
17 6
|
4月前
|
SQL HIVE
hive高频函数(一)
hive高频函数(一)
37 0
|
4月前
|
SQL XML JSON
Hive函数全解——思维导图 + 七种函数类型
Hive函数全解——思维导图 + 七种函数类型
81 2
Hive函数全解——思维导图 + 七种函数类型
|
4月前
|
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中使用转换后的日期类型以避免错误。
|
4月前
|
SQL HIVE
【Hive SQL】字符串操作函数你真的会用吗?
本文介绍了SQL中判断字符串是否包含子串的几种方法。`IN`函数判断元素是否完全等于给定元素组中的某项,而非包含关系。`INSTR`和`LOCATE`函数返回子串在字符串中首次出现的位置,用于检测是否存在子串。`SUBSTR`则用于提取字符串的子串。`LIKE`用于模糊匹配,常与通配符配合使用。注意`IN`并非用于判断子串包含。
|
4月前
|
SQL Java 程序员
Hive反射函数的使用-程序员是怎么学UDF函数的
Hive反射函数的使用-程序员是怎么学UDF函数的
30 0
|
4月前
|
SQL HIVE 数据格式
Hive高频函数(二)
Hive高频函数(二)
31 0
|
4月前
|
SQL 数据处理 HIVE
【Hive】写出Hive中split、coalesce及collect_list函数的用法?
【4月更文挑战第17天】【Hive】写出Hive中split、coalesce及collect_list函数的用法?