首页 > 其他分享 >Hive的4种排序

Hive的4种排序

时间:2023-03-04 16:45:57浏览次数:35  
标签:sort distribute Hive emp deptno 排序 select

1、全局排序(Order by)


 

功能:全局排序,只有1个reducer(用1个Reduce Task完成全局排序,与设置的Reduce Task个数无关)

参数:ASC:升序(默认)  DESC:降序

使用:order by放在select语句的结尾

例如:

  --查询员工信息按工资降序排列

  select * from emp order by sal DESC;

 

2、每个MapReduce内部排序(Sort by)


 

功能:很多情况下不需要全局排序,此时可以使用sort by。sort by为每个reducer产生一个排序文件,每个reducer内部进行排序,不对全局结果集进行排序

参数:设置reduce个数:set mapreduce.job.reduces=3;

例如:  

  --根据部门编号降序查看员工信息

  select * from emp sort by deptno desc;  

 

3、分区排序(Distribute by)


 

功能:类似mr中的自定义分区

使用:结合sort by使用,写在sort by语句之前

分区规则:根据分区字段的Hash码与reduce的个数进行模除后,余数相同的分到一个区

例如:

  --先按照部门编号分区,再按照员工编号降序排序。

   select * from emp distribute by deptno sort by empno desc;

 

4、Cluster by


 

功能:当distribute by和sorts by字段相同时,可以使用cluster by方式

使用:cluster by除了具有distribute by的功能外还兼具sort by的功能。但是排序只能是升序排序,不能指定排序规则为ASC或者DESC

例如:

  --以下两种写法等价

  select * from emp cluster by deptno;

  select * from emp distribute by deptno sort by deptno;

 

标签:sort,distribute,Hive,emp,deptno,排序,select
From: https://www.cnblogs.com/qinyuanData/p/17176942.html

相关文章

  • 154. 寻找旋转排序数组中的最小值 II (Hard)
    问题描述154.寻找旋转排序数组中的最小值II(Hard)已知一个长度为n的数组,预先按照升序排列,经由1到n次旋转后,得到输入数组。例如,原数组nums=[0,1,4,4,5,6,7]......
  • sort(大小排序、频率排序)
    sort()sort()方法用于对数组的元素进行排序;sort()方法默认将按字母和升序将值作为字符串进行排序;对数字进行排序//return<0(保持不变)//return>o(交换次......
  • 西电oj 244题单词排序
    题目描述:定义一个二维字符数组str[10][20],行号表示单词序号,列号表示单词最大长度,输入一个正整数N(N≤10),表示单词数,使用函数wd_sort()完成单词的排序,按字母顺序从小到大排......
  • 如何使用 js 实现一个比较APP版本号的大小的版本号排序函数 All In One
    如何使用js实现一个比较APP版本号的大小的版本号排序函数AllInOne(......
  • c++ 五种排序方式
    第一种:冒泡排序冒泡排序遍历两次数组,时间复杂度On2,每一次用一个元素和后续其他所有元素比较,若是大小不符合预期则反转位置,具体实现代码如下:#include<iostream>#include......
  • 堆排序
    【经典算法】:堆排序 1.概述堆排序(HeapSort)就是利用堆(假设利用大顶堆)进行排序的方法。原理:将待排序的序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根结点,将......
  • mysql对一二三四五排序
    SELECTbuildingFloorsFROMConstructionCaseORDERBYFIELD(SUBSTRING(buildingFloors,1,1),'一','二','三','四','五','六','七','八','九'); ......
  • java-数组,冒泡排序19
    packagecom.demo.data;publicclassarr{publicstaticvoidmain(String[]args){int[]arr={11,22,33,44,999};intmax=m(arr);......
  • 快速排序
    /** *@paramarr需要排序的数组 *@paraml数组最左下标 *@paramr数组最右下标 */ publicstaticvoidquickSort(int[]arr,intl,intr){ if......
  • 冒泡排序及其优化
    importjava.util.Arrays;publicclassbobbleSort{publicstaticvoidmain(String[]args){int[]arr={2,6,3,7,4,1,8,5,0,9};//......