hive的collect_set函数

本文探讨了IMEI在设备标识中的角色,并聚焦于不同类型的App(游戏和应用)及其特性(如动作射击、阅读),同时揭示了付费应用和高级功能的分布。通过收集和分析各列数据,揭示了设备上安装的应用和游戏的多样化趋势及HiAD和IAP的使用情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

imeiapp_idapp_typethird_app_typeis_hiadis_iaprow_num
i1a游戏动作射击011
i1b应用阅读113
i1c游戏null005
2a应用阅读101
i2b游戏动作射击112
i2c游戏阅读006

 

create external table pinko.app_info
(
imei string
,app_id string
,app_type string
,third_app_type string
,is_hiad int
,is_iap int
,row_num int
)
row format delimited
fields terminated by '\t'
stored as textfile
location '/warehouse/pinko/app_info'
;
select
imei
,concat_ws(',',collect_set(app_id) over(partition by imei order by row_num) )  as  app_id_list
,concat_ws(',',collect_set(app_type) over(partition by imei order by row_num) )  as  app_id_list
,concat_ws(',',collect_set(third_app_type) over(partition by imei order by row_num) )  as  app_id_list
,concat_ws(',',collect_set(if(is_hiad=1,app_id,null)) over(partition by imei order by row_num) )  as  hiad_app_id_list
,concat_ws(',',collect_set(if(is_hiad=1,app_type,null)) over(partition by imei order by row_num) )  as  hiad_app_id_list
,concat_ws(',',collect_set(if(is_hiad=1,third_app_type,null)) over(partition by imei order by row_num) )  as  hiad_app_id_list
,row_num
from app_info

 

select
imei
,app_id_list
,app_type_list
,third_app_id_list
,hiad_app_id_list
, hiad_app_type_list
, hiad_third_app_id_list
from
(
    select
    imei
    ,concat_ws(',',collect_set(app_id) over(partition by imei order by row_num) )                                      as  app_id_list
    ,concat_ws(',',collect_set(app_type) over(partition by imei order by row_num) )                                  as  app_type_list
    ,concat_ws(',',collect_set(third_app_type) over(partition by imei order by row_num) )                          as  third_app_id_list
    ,concat_ws(',',collect_set(if(is_hiad=1,app_id,null)) over(partition by imei order by row_num) )             as  hiad_app_id_list
    ,concat_ws(',',collect_set(if(is_hiad=1,app_type,null)) over(partition by imei order by row_num) )          as  hiad_app_type_list
    ,concat_ws(',',collect_set(if(is_hiad=1,third_app_type,null)) over(partition by imei order by row_num) )  as  hiad_third_app_id_list
    ,row_number() over(partition by imei order by row_num desc) as row_num
    from app_info
) t1
where row_num=1

select
imei
,concat_ws(',',collect_set(app_id)                                        )      as  app_id_list
,concat_ws(',',collect_set(app_type)                                    )       as  app_type_list 
,concat_ws(',',collect_set(third_app_type)                            )       as  third_app_id_list 
,concat_ws(',',collect_set(if(is_hiad=1,app_id,null))               )       as  hiad_app_id_list 
,concat_ws(',',collect_set(if(is_hiad=1,app_type,null))            )        as  hiad_app_type_list 
,concat_ws(',',collect_set(if(is_hiad=1,third_app_type,null))   )        as  hiad_third_app_id_list 
from app_info
group by imei

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值