美文网首页
2022-03-04 排序操作

2022-03-04 排序操作

作者: Denholm | 来源:发表于2022-03-04 19:03 被阅读0次
-- ###################排序操作###########################

-- 1、order by(重点,remember)
-- 用于对最终的结果进行全局排序,要求只能有一个Reduce
select *
from student;

select *
from score;

select *
from student stu
         left join score sc on stu.sid = sc.sid
order by sc.sscore desc;

-- 如果order by后边跟多个字段,则最前边的字段是排序的主要条件,如果主要条件相同,则按照次要条件排序
-- order by后边的排序字段不能随便调换位置
select sid, avg(sscore)
from score
group by sid
-- 主要条件降序,如果主要条件相同,则按次要条件降序排序(排序方式可自行指定)
order by sid desc, avg(sscore) desc;

-- 2、sort by
-- 将每一个Reduce的输出结果进行排序,sort by通常和distribute by结合使用
--1)设置reduce个数
set mapreduce.job.reduces=3;
--2)查看设置reduce个数
set mapreduce.job.reduces;

--3)查询成绩按照成绩降序排列
-- sort by会自动的将每一个Reduce输出的内容进行排序
select *
from score sort by sscore desc;

--4)将查询结果导入到文件中(按照成绩降序排列  )
insert overwrite local directory '/export/data/sort'
select *
from score sort by sscore desc;

-- 3. distribute by + sort by分区排序(重点,remember)
-- 1)设置reduce的个数,将我们对应的sid划分到对应的reduce当中去
set mapreduce.job.reduces=7;

-- 2)通过distribute by进行数据的分区
-- 使用distribute来设置MR的K2,然后使用K2的hash值对reduce个数取模进行分区
-- sort by会对每一个分区后的数据再进行排序
explain
select *
from score distribute by sid sort by sscore;

insert overwrite local directory '/export/data/distribute'
select *
from score distribute by sid sort by sscore desc;

-- 4、cluster by
-- distribute by sid  sort by sid  等价于---->cluster by sid
---》100个不同sid  ---》  reduce格式 设置为3个
-- 当distribute by 和 sort by的字段相同时,则可以使用过cluster by简化书写
-- cluster by默认只能是升序排序,不能指定其他排序方式
set mapreduce.job.reduces=2;

insert overwrite local directory '/export/data/cluster'
select * from score cluster by sid ;

相关文章

  • 2022-03-04 排序操作

  • 三种初级排序

    三种初级排序 冒泡排序 选择排序 插入排序 此篇文章中展示的代码为 C 语言代码 ,数组索引操作替换为指针操作。 ...

  • Java实现几种常见排序方法

    日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序...

  • Java常用排序算法

    日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序...

  • 实现几种常见排序方法

    Java实现几种常见排序方法 日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还...

  • 无序数组求中位数的方法

    前言 数组的主要操作包括查找和排序,排序最常用的算法有冒泡排序、选择排序、选择排序、插入排序、堆排序、合并排序。排...

  • 基础算法合集(未完待续...)

    桶排序 冒泡排序 快速排序 队列与出入队 判断回文(栈操作) 链表-插入一个数据 “模拟链表” 的实现与操作(插入...

  • Excel如何改变默认排序方式进行笔画排序?

    Excel如何改变默认排序方式进行笔画排序? 操作步骤挺简单的,如图例所示 上图操作步骤 1、选择要排序的区域 2...

  • DAY6:MySQL索引扫描排序

    一、MySQL有两种排序方式: 通过排序操作:将查找出来结果使用排序算法进行排序。 按索引顺序排序。 二、排序标志...

  • 了解一下什么是外部排序算法

    以前我们学习的排序算法,比如冒泡排序、插入排序、快速排序等都是属于内部排序,即所有排序操作都是在内存中完成。然而如...

网友评论

      本文标题:2022-03-04 排序操作

      本文链接:https://www.haomeiwen.com/subject/depmrrtx.html