统计分析及建表过程中通常会遇到这样的需求,比如:
1. 统计以逗号分隔的标签数,哪个最受欢迎,以及作为内容推荐的数据来源
2. 分组排序url的pv, 取topN的列表
3. 经常会有名字重复的url记录,取pv最大的那条, 剩下的剔除
下面逐一对以上场景进行总结, 用的是 hivesql,希望有同样需求的同学可以快速应用,如果有不对的地方还请指正:)
1. 统计以逗号分隔的标签数,哪个最受欢迎
hive表中tag列经常是这样的
--统计以逗号分隔的tags的分布
--其中tags是你打算展开的原先以逗号分隔的那一列,
--tags_split 是展成多行后的每个tag组成的列,
--alias是别名,可以自己任意定
--然后group by, 统计个数分布
select tags_split,count(*) as