再美不及姑娘你
又见西风上碧树
posts - 135,comments - 7,views - 47982

建表语句

 create table user_tag_merge
 (   uid int,
    gender String,
    agegroup String,
    favor String
 )
 row format delimited fields terminated by '\t'

导入数据

 insert into user_tag_merge values(1,'M','90后','sm');
 insert into user_tag_merge values(2,'M','70后','sj');
 insert into user_tag_merge values(3,'M','90后','ms');
 insert into user_tag_merge values(4,'F','80后','sj');
 insert into user_tag_merge values(5,'F','90后','ms');

先看需求:

原表数据格式为

需要将其转化格式为

 

直接上Hql

 --先将每行粒度增粗,进行拼接
 select
    uid,
     --str_to_map可以将一个固定格式的字符串转化为map类型
    str_to_map(concat("gender",":",gender,",","agegroup",":",agegroup,",","favor",":",favor)) tagMap
 from user_tag_merge;
 --在作为子集进行侧窗炸裂,然后根据两列进行分组
 select
    col1 tag_code,
    clo2 tag_value,
    collect_set(uid)
 from(
         select
            uid,
             --将拼接的字符串转化为map
            str_to_map(concat("gender",":",gender,",","agegroup",":",agegroup,",","favor",":",favor)) tagMap
         from user_tag_merge
 
    )t lateral view explode(tagMap) tmp as col1,clo2
 group by col1, clo2
 
posted on   再美不及姑娘你  阅读(151)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示