当前位置:   article > 正文

Hive实战案例_hive多维统计分析案例实战

hive多维统计分析案例实战

离线作业执行流程

  1. 通过MapReduce进行数据清洗,得到ETL数据
  2. 创建Hive表,加载ETL数据
  3. 进行各种维度的统计,并写入到Hive表中
  4. 将Hive表中的数据导出到MySql(optional,可利用Sqoop框架实现该功能)

目前第一步已经执行完成,路径在 /etl/part-r-00000 数据格式如下:

timeurlrefereripuaprovincepageid
2013-07-21 16:42:55http://www.yihaodian.com/cart/cart.do?action=viewhttp://www.yihaodian.com/cmsPage/show.do?pageId=20391&provinceId=14117.27.153.190Mozilla/5.0 (compatible; MSIE 9.0;)福建省-

创建表trackinfo

create external table trackinfo(
	time string,
	url string,
	referer string,
	ip string,
	ua string,
	province string,
	pageid bigint
)PARTITIONED BY (day string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
location '/trackinfo';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

说明:创建外部表名叫trackinfo,根据day字段进行分区,导入数据的行分隔符是\t,指定表文件位置在HDFS的trackinfo文件夹下。
在这里插入图片描述

加载ETL数据到trackinfo

load data inpath '/etl/part-r-00000' into table trackinfo partition(day='2013-07-21');
  • 1

说明:加载HDFS上路径为/etc/part-r-00000的数据到trackinfo表中,分区天数day=2013-07-21
在这里插入图片描述

统计每个省份的总数

create external table province_stat(
province string,
count int
)PARTITIONED BY (day string)
location '/trackinfo/province';

insert overwrite table province_stat partition(day='2013-07-21')
select province,count(province) count from trackinfo group by province;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

说明:将trackinfo中的省份统计结果写到province_stat表,并按天分区。
在这里插入图片描述

HDFS文件展示

在这里插入图片描述
在这里插入图片描述

总结

其实Hive就是把一个HiveQL语句翻译成一个MapReduce作业去跑,将跑完的结果写出到HDFS上,对于一些简单的统计任务可以用Hive来实现,但如果出现比较复杂的业务场景,还是得写代码来实现。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/650735
推荐阅读
相关标签
  

闽ICP备14008679号