博客信息

Hive列转行后再行专列实现分组后再获取明细

发布时间:『 2017-07-05 17:57』  博客类别:Hadoop/Spark  阅读(1508) 评论(0)

eg:按照device_id_md5,package_name,adx_id,ad_id分组后,获取device_id_md5,package_name,adx_id,ad_id,req_time五个字段的值

select req_time,device_id_md5,package_name,ad_id from
(select count(1) as num,device_id_md5,package_name,adx_id,ad_id,split(concat_ws(',',collect_list(req_time)),',') req_times from req_log_detail where log_date = '20170703' and adx_id = 2 group by device_id_md5,adx_id,package_name,ad_id having num > 60
) a lateral view explode(a.req_times) ad_req_time as req_time order by device_id_md5;

其中:

split(concat_ws(',',collect_list(req_time)),',') 将req_time列转行;

注:collect_set是去重的。

lateral view explode(a.req_times) ad_req_time as req_time 将req_times行转列

关键字:   无
评论信息
暂无评论
发表评论
验证码: 
Powered by IMZHANGJIE.CN Copyright © 2015-2025 粤ICP备14056181号