order by:

    order by是全局排序,受hive.mapred.mode的影响。
 
    使用orderby有一些限制:
    1、在严格模式下(hive.mapred.mode=strict),orderby必须跟limit一起使用(?)。
        原因:在执行orderby时,hive使用一个reducer,如果查询结果量很大,这个reducer执行起来会很费劲,所以必须要限制查询输出结果的数量。
        limit n 之后,reducer处理的数据有n * count(map)条数据。
    
    2、在非严格模式下(默认,hive.mapred.mode=nonstrict),orderby可以不跟limit一起使用。
 
    相关设置:
    set hive.mapred.mode=strict;
    set hive.mapred.mode=nonstrict;    
 
    例子:
    select id, name from user order by name limit 10;

sort by:

    对每个reducer里的数据进行排序,如果有多个reducer执行查询,则查询出来的数据是部分排序的。。
 
    也可以使用limit n来减少reducer处理的数据量。
 
    相关设置:
    set mapred.reduce.tasks=n;
 
    例子
    hive使用2个reducer执行查询select col1, col2 from t1 sort by col1 asc, col2 desc,则:
    一个reducer的输出结果是:
    0    5
    0    3
    3    6
    9    1
    另一个reducer的输出结果是:
    0    4
    0    3
    1    1
    1    5
    说明:对同一个reducer里的数据进行排序。

distribute by:

    hive执行查询时,在mr的分区结果根据distributeby的字段进行分区,这样相同字段的数据由同一个reducer处理。
    
    相关设置:
    set mapred.reduce.tasks=n;
 
    例子
    某一列的数据如下:
    x1
    x2
    x3
    x4
    x1
    对这个字段distributeby后,
    reducer1里的数据是:
    x1
    x2
    x1
    reducer2里的数据是:
    x3
    x4
    说明:同一个值(x1)交由同一个reducer处理,但是数据是无序的。

cluster by:

    clusterby是distributeby和sortby的快捷方式,根据clusterby字段进行分区并排序。
    
    例子
    某一列的数据如下:
    x1
    x2
    x3
    x4
    x1
    对这个字段distributeby后,
    reducer1里的数据是:
    x1
    x1
    x2
    reducer2里的数据是:
    x3
    x4
    说明:同一个值(x1)交由同一个reducer处理,数据也是有序的。
    

hive 排序 order by sort by distribute by cluster by的更多相关文章

  1. hive中order by,sort by, distribute by, cluster by作用以及用法

    1. order by     Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的 ...

  2. [转载]hive中order by,sort by, distribute by, cluster by作用以及用法

    1. order by     Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的 ...

  3. hive中order by ,sort by ,distribute by, cluster by 的区别(**很详细**)

    hive 查询语法 select [all | distinct] select_ condition, select_ condition from table_name a [join table ...

  4. hive中order by,sort by, distribute by, cluster by的用法

    1.order by hive中的order by 和传统sql中的order by 一样,对数据做全局排序,加上排序,会新启动一个job进行排序,会把所有数据放到同一个reduce中进行处理,不管数 ...

  5. Hadoop Hive 中的排序 Order by ,Sort by ,Distribute by以及 Cluster By

    order by order by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)只有一个reducer,会导致当输入规模较大时,需要较长的计算时间. set h ...

  6. hive 中 Order by, Sort by ,Dristribute by,Cluster By 的作用和用法

    order by order by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序) 只有一个reducer,会导致当输入规模较大时,需要较长的计算时间. set ...

  7. [大数据相关] Hive中的全排序:order by,sort by, distribute by

    写mapreduce程序时,如果reduce个数>1,想要实现全排序需要控制好map的输出,详见Hadoop简单实现全排序. 现在学了hive,写sql大家都很熟悉,如果一个order by解决 ...

  8. Hive 中的 order by, sort by, distribute by 与 cluster by

    Order By order by 会对输入做全排序, 因此只有一个Reducer(多个Reducer无法保证全局有序), 然而只有一个Reducer, 会导致当输入规模较大时, 消耗较长的计算时间. ...

  9. [转]hive中order by,distribute by,sort by,cluster by

    转至http://my.oschina.net/repine/blog/296562 order by,distribute by,sort by,cluster by  查询使用说明 1 2 3 4 ...

随机推荐

  1. AT24Cxx学习笔记

    AT24Cxx是E2PRom的一个系列: 存储空间大小:AT24C02——2Kbit(256Bytes).AT24C04——4Kbit(512Bytes).AT24C08——8Kbit(1024Byt ...

  2. C# 对象相等性判断和同一性判断

    在日常开发中经常需要编写代码比较不同的对象.例如,有时需要将对象都放到一个集合中,并编写代码对集合中的对象进行排序.搜索或者比较. System.Object类有两个Equals方法,如下: 1.实例 ...

  3. 《LeetBook》leetcode题解(15):3Sum[M]

    我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...

  4. 蝴蝶效应--由'sudo -s ...'引发的vim autocmd使用异常

    1. 背景介绍 自加入RedHat起,我就把家里的台式机(Ubuntu 16.04 LTS)的默认登录用户veli切换成了huanli, 主要是为了跟公司的电脑配置对齐以方便未来WFH,但引发了一个v ...

  5. NoSQL之Cassandra

    http://www.cnblogs.com/LBSer/p/3328841.html 9月初听了一个讲座,演讲者是张月同学,他给我们分享了Cassandra nosql数据库,讲得很精彩,听完之后收 ...

  6. lucene源码分析(4)Similarity相似度算法

    lucene 7.5.0默认的评分Similarity是BM25Similarity (IndexSearcher.java) // the default Similarity private st ...

  7. Oracle11g在Windows和Linux下imp导入表,exp导出表,sqluldr2导出表,sqlldr导入表

    Windows(Win10) 打开cmd 首先输入sqlplus,依次输入用户名.口令 C:\Users\hasee>sqlplus SQL*Plus: Release Production o ...

  8. 转载:哈希加密算法 MD5,SHA-1,SHA-2,SHA-256,SHA-512,SHA-3,RIPEMD-160 - aTool

    http://www.atool.org/hash.php 一.MD5哈希加密算法 MD5即Message-Digest Algorithm 5(信息-摘要算法 5),用于确保信息传输完整一致.是计算 ...

  9. Kaggle(一):房价预测

    Kaggle(一) 房价预测 (随机森林.岭回归.集成学习)  项目介绍:通过79个解释变量描述爱荷华州艾姆斯的住宅的各个方面,然后通过这些变量训练模型, 来预测房价.   kaggle项目链接:ht ...

  10. 浅谈angular2与angularJS的区别

    简介 大家好,今天给大家介绍一下angular,相信做过前端的小伙伴们都知道angular的大名,angularJS自2012年发布起就受到了大家的广泛关注.他首次提出了双向绑定概念让所有人都耳目一新 ...