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表中的结果
结果正确!!