Hive 四種排序方法功能和使用

2021-10-06 11:41:23 字數 1201 閱讀 2946

(1)功能

根據指定字段進行全域性排序,和關係型資料庫的用法一樣,會生成乙個reducetask,預設是公升序。實際中用的比較多

(2)例子

--公升序

select * from emp order by sal;

--降序

select * from emp order by sal desc;

--多列排序

select ename, deptno, sal from emp order by deptno, sal;

(1)功能

根據mapreduce.job.reduces的值,生成指定數量的reducetask,對其進行排序,不是全域性排序。

(2)例子

--設定reduce個數,生成5個reduce

set mapreduce.job.reduces = 5;

--根據部門編號降序檢視員工資訊

select * from emp sort by empno desc;

--將查詢結果匯入到檔案中(根據部門編號降序排序)

insert overwrite local directory '/test/sort'

select * from emp sort by deptno desc;

(1)功能

進行分割槽,類似於mapreduce的partition,可以結合sort by使用,distribute by語句要寫在sort by語句之前。測試的時候需要指定reduce數量

(2)例子

--設定reduce個數

set mapreduce.job.reduces = 5;

--根據部門分割槽,根據員工排序。匯入到檔案中

insert overwrite local directory '/test/distribute'

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

(1)功能

當distribute by和sorts by欄位相同時,可以使用cluster by方式,預設是只有公升序

(2)例子

select * from emp cluster by deptno;

Hive 四種排序方式

hive中4種排序的區別 共有四種排序 order by,sort by distribute by,cluster by order by 全域性排序 對輸入的資料做排序,故此只有乙個reducer 多個reducer無法保證全域性有序 只有乙個reducer,會導致當輸入規模較大時,需要較長的計...

Hive 中的四種排序

1 order by 可以指定desc 降序 asc 公升序 order by會對輸入做全域性排序,因此只有乙個reducer 多個reducer無法保證全域性有序 然而只有乙個reducer,會導致當輸入規模較大時,消耗較長的計算時間。create table temperature year i...

hive的四種排序比較

hive 的四種排序對比 order by 會對輸入做全域性排序 因此只有乙個reducer 多個reducer無法保證全域性有序 只有乙個reducer,會導致當輸入規模較大時,需要較長的計算時間 在order by 狀態下所有資料會到一台伺服器進行reduce操作也即只有乙個reduce,如果在...