Hive四种排序方式
type
Post
status
Published
date
Dec 1, 2022
slug
hive-four-sorting-methods
summary
tags
开发
大数据
category
技术分享
icon
password
order by
用于对查询结果及执行一个全局排序。因此只有一个reducer。当输入较大时,需要较长的计算时间。
在严格模式下必须使用
limit限定条件,因为如果数据量特别大的话会出现无法输出结果的情况,如果进行limit显示,那么只处理(n* map number)条记录。sort by
非全局排序。只会在每个reducer中对数据进行排序,执行一个局部排序过程。这可以保证每个reducer的输出数据都是有序的,但是并非全局有序。这样可以提高后面进行的全局排序的效率。
sort by是不受严格模式影响。
distribute by
distribute by控制map的输出在reducer中是如何划分的。
MapReduce job中传输的所有数据都是按照key/value对的形式进行组织的,因此Hive在将用户的查询语句转换成MapReduce job的时候,其必须在内部使用这个功能。
MapReduce计算框架会依据map输入的键计算相应的hash值,然后按照得到的hash值将内容分发到多个reduce中去,不过当使用sort by时,不同的reducer的输出会有明显的重叠,至少对于拍了顺序二呀是这样的,即使每个reducer的输出的数据都是有序的。
cluster by
cluster by除了具备distribute by的功能之外,还具有sort by的功能。
但是cluster by只能进行倒叙排序。