您的位置:首页 > 运维架构 > Linux

hive实战演练:手机流量统计

2016-02-05 11:34 411 查看
hive 本质上是一个 sql 解析引擎 ,提供了一种类sql语言 hql 以便于使用,将我们熟悉的sql语言 转换成了 一个个map-reduce进程

需求 : 统计如下文件中 每个手机号使用流量的情况 

待处理文件:http.dat

下载地址:http://download.csdn.net/detail/xq_iris/9428040

文件格式:



需要保留的字段有 : 1(手机号)6(上行数据包数)7(下行数据包数)8(上行流量)9(下行流量)

step1: 使用hive为此文件建表 设置 '\t' 为分割符:

hive> create table http(t0 string,t1 string,t2 string,t3 string, t4 string, t5 string , t6 int,t7 int,t8 int,t9 int, t10 string) row format delimited fields terminated
by '\t';



step2: 将本地文件 http.dat 加载到表中 :

hive>load data local inpath '/root/http.dat' into table http;



表已经创建好,下一步就是对之进行统计工作:

 step3: 先创建一张空表http_result 来存储结果

hive>create table http_result(t1 string,t6 int,t7 int,t8 int,t9 int);

step4:  然后对表中数据进行处理:

hive> insert into table http_result      //将select的结果写入表中

       > select t1,sum(t6),sum(t7),sum(t8),sum(t9) from http group by t1; //按手机号分区



step5:map-reduce进程结束后 查看 http_result表中的结果 



结果正确!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop hive linux hql