一、hive中 order by, sort by, distribute by, cluster by
1. order by
Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有多少的block只会启动一个reducer)。但是对于大量数据这将会消耗很长的时间去执行。
2. sort by
Hive中指定了sort by,那么在每个reducer端都会做排序,也就是说保证了局部有序(每个reducer出来的数据是有序的,但是不能保证所有的数据是有序的,除非只有一个reducer),好处是:执行了局部排序之后可以为接下去的全局排序提高不少的效率(其实就是做一次归并排序就可以做到全局排序了)。
SELECT key, value FROM src SORT BY key ASC, value DESC
查询有两个reduce,查询结果如下:
0 3
3 6
9 1
-------
本文详细介绍了Hive中的order by, sort by, distribute by, cluster by的区别与使用场景,以及Hive的内置函数,包括日期函数、SQL中的distinct和group by、case when、窗口函数ROW_NUMBER、RANK、DENSE_RANK、LEAD等。此外,还探讨了自定义函数UDF的开发和使用,包括如何在Hive和Spark中使用UDF。"
133153066,19991387,使用NumPy构建CNN进行计算机视觉,"['计算机视觉', '深度学习', 'numpy', '卷积神经网络', '图像处理']
订阅专栏 解锁全文
1582





