公司网站ICP注销,商业网站建设知识点,做网站记者的出路是什么,网站设计中怎么设置当前元素不可见1、Order by 全局排序
ASC#xff08;ascend#xff09;: 升序#xff08;默认#xff09; DESC#xff08;descend#xff09;: 降序
注意 #xff1a;只有一个 Reducer,即使我们在设置set reducer的数量为多个,但是在执行了order by语句之后,当前此次的运算还是只有…1、Order by 全局排序
ASCascend: 升序默认 DESCdescend: 降序
注意 只有一个 Reducer,即使我们在设置set reducer的数量为多个,但是在执行了order by语句之后,当前此次的运算还是只有1个reducer,因为order by要做的是全局分区。(开窗函数内是分区内排序不在此问题)
验证
set mapreduce.job.reduces3;
select * from stu_scores order by math;
总结order by 语句的运行效率较低一般要配合limit 使用。
2、Sort By 在每一个Reduce的job中进行排序
设置reduce 的job数为3
set mapreduce.job.reduces3;
查看设置的reduce 的job数量
set mapreduce.job.reduces
测试sort by
select * from stu_scores sort by math;
备注在3个reduce job中分别进行排序。
3、Distribute By 分区结合 sort by 使用
有些场景我们需要控制某些特定行应该到同一reducer做一些聚集操作。
distribute by 类似 MR 中 partition自定义分区进行分区结合 sort by 使用。
设置reduce 的job数为3
set mapreduce.job.reduces3;
查看设置的reduce 的job数量
set mapreduce.job.reduces
测试 distribute by....sort by
# 按照stu_id分区分区内使用math排序
select * from stu_scores distribute by stu_id sort by math;
分区逻辑根据distribute by 后的字段hash码与reduce 的个数进行模数后,决定分区路由。
4、cluster by
当 distribute by 和 sort by 字段相同时可以使用 cluster by 方式。但是排序只能是升序排序不能指定排序规则为 ASC 或者 DESC。
select * from stu_scores cluster by math;
select * from stu_scores distribute by math sort by math;
总结 cluster by 等价于distribute by 和 sort by 字段的升序排序。