hive使用时一些常见函数

几个常用的时间函数

date_add(A,B) 时间函数 date_add(‘2021-03-18’,-1) -->2021-03-17 当是负数时可以有date_sub(A,B)
date_format(date,‘yyyy-MM’) 时间格式化
last_day(A) 获取时间A的月份的最后一天
next_day(A,‘B’) 获取时间A的下一个时间星期几B的时间 B可以是英语星期的缩写 MO星期一 Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday

判空

nvl(A,B) 如果A空则返回B 不空则A
coalesce(A,B,C) 查找最先一个不为空的,如果全部是空,则返回空

case语句类似if

如果A为True 则B 否则C
case when A
then B
else C
end
//另外一种case语法
可以看作模式匹配 A和 B 或者D 比较,是谁则进入谁的逻辑 否则F
case A
when B then C
when D then E
。。。。。。
else F
end

类型转换

cast(A as B) 将A字段转换为类型 B

name_struce(‘column’,column_info,‘name’,name_info) 函数name_struct(A,B)好处在于可以自己对列进行命名 查询出column_info 命名列column

拼接函数

concat(A,B,C) 拼接A和B 注意null 否则直接返回null
concat_ws(’-’,‘A’,‘B’) 也是拼接,这个只要有一个不是null就不会返回null,但是需要制定拼接的分隔符==》A-B concat_ws(’’,‘A’,‘B’) ==>AB

集合

collect_set() 将同一分组不同行合为一个集合这个会去重,如果你不需要去重使用 collect_list()
表信息

id name
1 er
1 wq
2 df
2 cv
查询结果就是
select id ,collect_set(name) from stu group by id;
1 [“er”,“wq”]
2 [“df”,“cv”]

map集合

str_to_map(‘A’,‘B’,‘C’) 使用B将A分割成K-V对。然后使用C将分割的K-V分割成map集合
str_to_map(‘a=tom,b=jar’, ‘,’ , ‘=’) {“a”:“tom”,“b”:“jar”}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值