首页 > 编程知识 正文

hive中orderby和sortby区别,hive中sortby的用法

时间:2023-05-05 18:10:58 阅读:276798 作者:3179

一 ORDERBY

ORDERBY 跟传统数据库ORDERBY 一样,会对所有的数据进行排序,可能有很多个Map任务,但是只会由一个Reducer来进行排序,如果数据海量的话,会很影响性能,因为需要花费大量的时间

 

二 SORTBY

如果在hive指定了SORT BY语句,那么在每一个Reducer都会进行排序,言外之意,只保证每一个Reducer的时候进行排序,那么这样的排序是局部的,并非全局的排序。类似于桶内排序

这样有一个好处:做了局部排序之后,进行全局排序的时候,能够效率不少。

 

三 DISTRIBUTEBY

根据指定字段,默认对数据进行hash,然后分道不同的Reducer中。

是控制Map的输出在Reducer是如何划分的,也就是控制哪些map输出到哪一个reducer,一般配合SORT BY使用,即按照什么划分reducer,然后进行Reducer级别的排序。有点分桶的意思。

 

SELECTfid,fname,ftime,fregion FROM movie DISTRIBUTE BY fid

SORTBY fid

 

四CLUSTERBY

CLUSTERBY 是DISTRIBUTE BY + SORT BY的综合。但是他的排序只能是倒序,不能指定ASC 或者DESC

比如

SELECTfid,fname,ftime,fregion FROM movie CLUSTER BY fregion;

等价于

SELECTfid,fname,ftime,fregion FROM movie DISTRIBUTE BY fid

SORTBY fid

 



 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。