hive-对用户浏览网站的点击量按年月进行统计

点击量文件统计如下:

统计结果:

实现方法:

1.上传Windows上面文件到/home/hadoop/data/xiongmaoTV.txt
2.创建xiongmaoTV表,把/home/hadoop/data/xiongmaoTV.txt load 进去
3.hive (default)> select * from xiongmaoTV;(确认已经创建好表)
熊猫tv 2018-01-02 5
快手 2018-01-02 3
YY 2018-01-02 2
熊猫tv 2018-01-03 4
抖音 2018-01-02 15
快手 2018-01-03 3
YY 2018-01-03 1
抖音 2018-01-03 16
熊猫tv 2018-02-02 5
快手 2018-02-02 3
YY 2018-02-02 2
抖音 2018-02-02 15
熊猫tv 2018-02-03 4
快手 2018-02-03 3
YY 2018-02-03 1
抖音 2018-02-03 16
熊猫tv 2018-03-02 5
快手 2018-03-02 3
YY 2018-03-02 2
抖音 2018-03-02 15
熊猫tv 2018-03-03 4
快手 2018-03-03 3
YY 2018-03-03 1
抖音 2018-03-03 16
hive (default)> desc extended xiongmaoTV;(确认表字段的名称类型)
name                 string                                   
date                 string                                   
responsesize         int
4.新建一张表xiongmaoTV_temp 对date字段进行处理,只留下年月
hive (default)> create table xiongmaoTV_temp as select name,substr(date,1,7) as date,responsesize from xiongmaoTV;
# substr(date,1,7) 对date这个字符串进行截取,返回值是从第一个字符开始,取前七个字符
hive (default)> select * from xiongmaoTV_temp;(结果为部分内容)
熊猫tv 2018-01 5
快手 2018-01 3
YY 2018-01 2
hive (default)> desc extended xiongmaoTV_temp;
name                 string                                   
date                 string                                   
responsesize         int
5.hive (default)>  select name,date,sum(responsesize) from xiongmaoTV_temp group by name,date;
# 按名字和日期进行分组求得每个名字下面对应每月的点击量的和
YY 2018-01 3
YY 2018-02 3
YY 2018-03 3
快手 2018-01 6
快手 2018-02 6
快手 2018-03 6
抖音 2018-01 31
抖音 2018-02 31
抖音 2018-03 31
熊猫tv 2018-01 9
熊猫tv 2018-02 9
熊猫tv 2018-03 9
6.hive (default)>  select name,date,sum(responsesize),sum(sum(responsesize))over(partition by name order by date) from xiongmaoTV_temp group by name,date;
# 根据over函数设置窗口的大小,让它按照date的升序进行改变,再通过sum()函数对该窗口下的数据进行累加求和,得到每年当前的点击量和
YY 2018-01 3 3
YY 2018-02 3 6
YY 2018-03 3 9
快手 2018-01 6 6
快手 2018-02 6 12
快手 2018-03 6 18
抖音 2018-01 31 31
抖音 2018-02 31 62
抖音 2018-03 31 93
熊猫tv 2018-01 9 9
熊猫tv 2018-02 9 18
熊猫tv 2018-03 9 27
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值