2

Hivesort byorder by命令用于按排序顺序获取数据。

例如:

排序方式

hive> SELECT  E.EMP_ID FROM Employee E SORT BY E.empid;

订购方式

hive> SELECT  E.EMP_ID FROM Employee E order BY E.empid;  

Hive SQL 中的查询sort by和查询有什么区别?order by

4

3 回答 3

15

Hive 支持 SORT BY 对每个 reducer 的数据进行排序。“order by”和“sort by”之间的区别在于前者保证输出中的总顺序,而后者只保证reducer中行的排序。如果有多个 reducer,“排序依据”可能会给出部分排序的最终结果。

注意:对于单列的 SORT BY 和 CLUSTER BY 之间的区别可能会造成混淆。不同之处在于 CLUSTER BY 按字段分区,而 SORT BY 如果有多个 reducer 随机分区,以便在 reducer 之间均匀分布数据(和负载)。

基本上,每个reducer中的数据都会按照用户指定的顺序进行排序。下面的例子显示

SELECT 键,值 FROM src SORT BY 键 ASC,值 DESC

于 2012-10-12T09:47:36.357 回答
2

SORT BY在典型的 SQL 实现中不存在。详细信息大概可以在 Hive 文档中找到,但Gaurang 的回答表明这SORT BY是 per-reducer。

ORDER BY在(据我所知)所有 SQL 实现中。维基百科有一篇解释它的文章

于 2012-10-12T05:04:24.343 回答
-2

SQL 中没有像“sortBy”这样的东西

为了在 SQL 中对数据进行排序,ORDER BY使用了该子句,它允许您对结果集中的记录进行排序。而且它只能在SELECT语句中使用。

例如:

SELECT columns FROM tables WHERE predicates ORDER BY column ASC/DESC;

ORDER BY子句根据指定的列对结果集进行排序。 ASC表示升序。 DESC表示降序。

默认是ASC

于 2012-10-12T05:08:48.807 回答