Hive order by/sort by/distribute by/cluster by作用
order by
Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有多少的block只会启动一个reducer)。但是对于大量数据这将会消耗很长的时间去执行。
sort by
sort by 只会对每一个reducer 中的数据进行排序,也就是执行一个局部的排序,这个可以保证每一个reducer的输出数据都是有序的(但并非全局有序)。这样可以提高后面进行全局排序的效率。
distribute by
distribute by 控制map的输出在reducer中是如何划分的。distribute by语句必须写在sort by语句之前。
cluster by
cluster by的功能就是distribute by和sort by相结合。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/9572.html