app热点分析

  • 其内容结构为,共包含6个字段,分别为(appId,app名称, 一级分类,二级分类,三级分类,Tags描述信息),但并不一定完全规整,视实际情况可能左对齐包括四个或五个或六个字段。

建表

CREATE  TABLE app_abstract_info(
appId string ,
appname string ,
firstlevel string,
secondlevel string,
thirdlevel string,
tags string    
)
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '\t' 
LINES TERMINATED BY '\n'
STORED AS  textfile;

#查看tags
select tags from app_abstract_info limit 10;
#拆分字段
select explode(split(tags,',')) as tag from app_abstract_info limit 10;
#用lateral view包装
select tag from app_abstract_info 
lateral view explode(split(tags,',')) tag_table as tag limit 10;
#去空
select tag from app_abstract_info 
lateral view explode(split(tags,',')) tag_table as tag 
where tag!='' and tag!='-'  group by tag limit 10;
#按词频倒排
select tag,count(1) as freq from app_abstract_info 
lateral view explode(split(tags,',')) tag_table as tag 
where tag!='' and tag!='-'  
group by tag order by freq desc limit 10;
#插入新表
insert overwrite table cipin001 
select tag,count(1) as freq from app_abstract_info 
lateral view explode(split(tags,',')) tag_table as tag 
where tag!='' and tag!='-'  
group by tag order by freq desc ;

脚本实现

即由目录和.sh脚本组成的项目,是一个文件夹,项目里分为五个包,
1.create(放数据表的创建sql语句),
2.udf(放java\scala\python等相关的自定义代码部分),
3.deal(处理部分),
4.data(存放项目所需要的一些临时数据、输入输出临时需要的数据),
5.conf(放项目所需要的配置文件相关的内容。使项目具备更好的可移植性)
create包:

创建原始数据表: 创建一个脚本文件创建hive里的表(存原始数据的外表,格式依照外部数据),运行
创建保存热点词的表: 创建一个脚本文件创建hive里的表(存热词的内表,格式自拟),运行

deal包:

导数据: 先把数据拉取到Linux里传到hdfs,创建一个脚本hive -e"进自己数据库,把数据load到表中",运行
把热词拆分放入热词表: 创建一个脚本,

hive -e"
进自己数据库,
insert overwrite table cipin001 
select tag,count(1) as freq from app_abstract_info 
lateral view explode(split(tags,',')) tag_table as tag 
where tag!='' and tag!='-'  
group by tag order by freq desc limit 10;
将tags列用拆分成单个词,并以它分组再降序排列,并插入热词表
"

,运行

plus版,增加排序,排名

#, dense_rank() over(order by XXXs desc) rank


select *,dense_rank() over( order by cc.freq desc ) as rank from 
(select tag,count(1) as freq from app_abstract_info 
lateral view explode(split(tags,',')) tag_table as tag 
where tag!='' and tag!='-'  
group by tag ) cc limit 10 ;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值