hive常用函数

nvl() 函数

nvl(score,0) 判断score的值是否为空,如果为空则为0,0为默认值,否则为score本身

coalesce函数

用途: 1、将控制值替换成其他值

         2、返回第一个非空值

COALESCE是一个函数, (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。

举例:

select coalesce(success_cnt, 1) from tableA

当success_cnt 为null值的时候,将返回1,否则将返回success_cnt的真实值。

select coalesce(success_cnt,period,1) from tableA

当success_cnt不为null,那么无论period是否为null,都将返回success_cnt的真实值(因为success_cnt是第一个参数),当success_cnt为null,而period不为null的时候,返回period的真实值。只有当success_cnt和period均为null的时候,将返回1。

split()函数

split(skin_code,'\ /') 对skin_code切割字符串

skin_code
'1_ABCD/3_ABCD/5_ABCD'
'6_ABCD/5_ABCD/3_ABCD'

执行函数split(skin_code,'\ /')

skin_code
[1_ABCD,3_ABCD,5_ABCD]
[6_ABCD,5_ABCD,3_ABCD]

行转列

lateral view 

实例

page_idadid_list
from_page[1,2,3]
concat_page[3,4,5]

SELECT pageid, adid

FROM pageAds LATERAL VIEW explode(adid_list) adTable AS adid;

运行结果

page_idaddid
from_page1
from_page2
from_page3
concat_page3
concat_page4
concat_page5

concat()数据合并

concat(1,2)

执行结果 1,2

concat('1','-','2')

执行结果 1-2

列转行对数据合并collect_list/collect_set

表格

name

movie_name

date
张三大唐双龙传20180516
李四天下无贼20180516
张三神探狄仁杰20180516
李四霸王别姬20180516
李四霸王别姬20180516
王五机器人总动员20180516
王五

放牛班的春天

20180516
王五盗梦空间20180516

按用户分组,取出每个用户每天看过的所有视频的名字:

select username, collect_list(video_name) from t_visit_video group by username ;

namemovie_name
张三["大唐双龙传","神探狄仁杰"]
李四["天下无贼","霸王别姬","霸王别姬"]
王五["机器人总动员"]

select username, collect_set(video_name) from t_visit_video group by username;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值