分组排序

                                            

1,所使用的关键字

     Order by      sort by    distributed by   group by      cluster by

2,  order by 这个跟mysql中的一致,查询结果做全局的排序,无论数据的多少只放在同一个的reduce中执行,所以要使用limit来限制结果的数量不然可能出不来结果

3,sort by 局部排序,就是把所有的数据分为三个(例)文件分别放到三个(例)reduce中进行执行,这样就大大的提高了效率,但是缺点就是只是局部有序,整体不是有序的

4,group by 这个是个分组的关键字,作用是分组查询,一般配合聚集函数进行使用,例如,count ave等.

5,distribute by 控制Map如何把数据按照指定的字段分在不同的reduce中进行执行

6,cluster by 这是在distribute by的基础上再加上sort by的效果

实验解析及操作截图

1,先查看hadoop是否已经启动

Hadoop name -format

如果没有启动需要切换到hadoop安装的路径下进行启动

Cd /opt/Hadoop/sbin

为了方便直接启动所有的进程

./start-all.sh

Jps   这个啥意思

2,然后启动mysql用于存放Hive的元数据

3,创建文件夹Hive 4用于方便后面的数据的下载和操作

Sudo mkdir -p /data/hive4

Sudo chow -r ubuntu:ubuntu /data 让这个文件的所有者属于ubuntu:ubuntu

Cd /data/hive

4,使用wget命令下载文件 注意事项:要先切换到你要下载的路径下

Wget 网址例:hettp://…………

5,切换到Hive的路径下启动hive

Cd /opt/apache-hive-1.2.2-bin/bin

./hive

6,启动完毕,数据准备完毕,开始实验

     1,order by的演示

Creatr table goods_visit(goods_id string,click_num int)

Row format delimiter fields terminated by ‘\t’ stored as textfile 这句忘记啥意思了0.0

解答:这个是以tab来进行字段的分隔符,存储方式是textfile hive默认的存储方式

Show tables

将下载的数据导入到自己创建的表中

Load data loal inpath’文件所在的位置’ into able goods_visit;

Load data local inpath’/data/hive4/goods_vist’ into table goods_visit;

使用order by进行查询

Select * from goods_visit order by click_num desc limit 10;------根据点击次数进行排序

sort by的演示

先把reduce的个数设置成三个

Set mapred.reduce.tasks=3;

Set 设置系统变量

创建订单表,导入数据

Create table order_items(item_id string,order_id string,goods_id string,goods_num string,goods_number string,shop_price string,goods_price string,goods_amount string)

Row format delimiter fields terminated by ‘\t’ stored as textfile;

导入数据跟上面的一样:

按商品的id进行排序

Group by的演示

创建表

导入数据

进行查询…….

演示distribute by

首先把reduce 设置成三个

Set mapred.reduce.tasks=3

使用买家收藏表按照用户ID做分发(distribute by)输出到本地/data/hive4/out

Insert overwrite local directory ‘/data/hive4/out’ select * from buyer_favorite distribute by buyer_id;

切换本地窗口查看上个路径下的文件

Clister by演示

设置reduce为三

按照buyer_id将buyer_favorite分为三个文件,按照id进行排序,并且只能倒叙

Select *from  buyer_favorite cluster by buyer_id;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值