Hive中Sortby和orderby查询之间的区别

时间:2012-10-12 04:58:25

标签: sql

请有人告诉我Hive SQL中sort byorder by查询之间的区别

3 个答案:

答案 0 :(得分:14)

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

注意:单个SORT BY和CLUSTER BY之间的区别可能会令人困惑。不同之处在于CLUSTER BY按字段分区,如果有多个reducers分区,则为SORT BY,以便在reducers之间统一分配数据(和加载)。

基本上,每个reducer中的数据将根据用户指定的顺序进行排序。以下示例显示

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

答案 1 :(得分:4)

典型的SQL实现中不存在

SORT BY。可能会在Hive文档中找到详细信息,但Gaurang's answer表示SORT BY是每个reducer。

ORDER BY(据我所知)是所有SQL实现。维基百科有an article explaining it

答案 2 :(得分:0)

SQL

中没有类似“sortBy”的东西

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

e.g:

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

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

默认为ASC