不分发数据,使用单个reducer

set mapred.reduce.tasks=;

select *
from dw.dw_app
where
dt>='2016-09-01'
and dt <='2016-09-18'
order by stime
limit ;

包多一层,是用order by

select t.* from
(
select *
from dw.dw_app
where
dt>='2016-09-01'
and dt <='2016-09-18'
and app_id=''
and msgtype = 'role.recharge'
) t
order by t.stime
limit ;

把所有具有相同的行最终都在一个reducer分区中,在在一个reducer中排序。 cluster by column=distribute by column+sort by colum

select *
from dw.dw_app
where
dt>='2016-09-01'
and dt <='2016-09-18'
and app_id=''
and msgtype = 'role.recharge'
cluster by dt
limit ;

查询每天前十名充值用户和充值总额

select t3.*
from (select t2.*
from (select dt,
account_id,
sum(recharge_money) as total_money,
row_number() over(partition by dt order by sum(recharge_money) desc) rank
from (select dt, account_id, recharge_money
from dw.dw_app
where dt >= '2016-09-01'
and dt <= '2016-09-18'
and app_id = ''
and msgtype = 'role.recharge'
                cluster by dt, account_id) t
group by dt, account_id) t2
where t2.rank <= ) t3
order by t3.dt asc, rank asc limit ;

hive 全局排序的更多相关文章

  1. Hive 的 排序

    全排序:order by对全部所有的数据进行排序,在实现的时候是放到一个reduce中进行的,可以想象这样做效率是比较低的: 局部排序:sort by对数据进行分组,然后在组内进行排序,每个reduc ...

  2. MapReduce TotalOrderPartitioner 全局排序

    我们知道Mapreduce框架在feed数据给reducer之前会对map output key排序,这种排序机制保证了每一个reducer局部有序,hadoop 默认的partitioner是Has ...

  3. Hive中排序和聚集

    //五种子句是有严格顺序的: where → group by → having → order by → limit ; //distinct关键字返回唯一不同的值(返回age和id均不相同的记录) ...

  4. hive的排序 order by和sort by

    在算法中,各个排序算法的复杂度都比较高,正常情况下为O (nlogn) ,所以当数据量特别大的时候,对数组进行排序消耗都很大. 因为hive的计算引擎MapReduce是分布式系统, 利用分布式的特点 ...

  5. Hadoop对文本文件的快速全局排序

    一.背景 Hadoop中实现了用于全局排序的InputSampler类和TotalOrderPartitioner类,调用示例是org.apache.hadoop.examples.Sort. 但是当 ...

  6. hive 分组排序,topN

    hive 分组排序,topN 语法格式:row_number() OVER (partition by COL1 order by COL2 desc ) rankpartition by:类似hiv ...

  7. 三种方法实现Hadoop(MapReduce)全局排序(1)

    我们可能会有些需求要求MapReduce的输出全局有序,这里说的有序是指Key全局有序.但是我们知道,MapReduce默认只是保证同一个分区内的Key是有序的,但是不保证全局有序.基于此,本文提供三 ...

  8. Mapreduce的排序(全局排序、分区加排序、Combiner优化)

    一.MR排序的分类 1.部分排序:MR会根据自己输出记录的KV对数据进行排序,保证输出到每一个文件内存都是经过排序的: 2.全局排序: 3.辅助排序:再第一次排序后经过分区再排序一次: 4.二次排序: ...

  9. hive的排序,分組练习

    hive的排序,分組练习 数据: 添加表和插入数据(数据在Linux本地中) create table if not exists tab1( IP string, SOURCE string, TY ...

随机推荐

  1. Adaboost 2

    本文不定期更新.原创文章,转载请注明出处,谢谢. Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类 ...

  2. WCF开发指南之构建服务

    一. 引言 Windows通讯基础(简称为WCF)是一种SDK,用于让你使用典型的CLR编程结构(例如用于发布和消费服务的类和接口等)来构建Windows面向服务的应用程序.WCF的编程模型是声明性的 ...

  3. 安装java后的环境变量配置

    安装java后的环境变量配置- 自定义安装目录可能会带来一些烦恼,配置环境变量可能很难找对目录,所以倒不如干脆就用默认的安装目录,记住它,安装完java之后去到那个路径把路径复制, 然后进行环境变量配 ...

  4. highcharts异步获取数据

    页面异步代码 $(function () { var chart_validatestatics; $(document).ready(function () { var options_valida ...

  5. BZOJ 3670 && BZOJ 3620 && BZOJ 3942 KMP

    最近感到KMP不会啊,以前都是背板的现在要理解了. #include <iostream> #include <cstring> #include <cstdio> ...

  6. Nice Sequence_线段树***

    Description Let us consider the sequence a1, a2,..., an of non-negative integer numbers. Denote as c ...

  7. 3、JS中的语句

    1.块语句 常用于组合0~多个语句:语法:{语句1;语句2……} *没有块级作用域:如:在for循环里面定义一个自增数 i,可以在for循环外取到它跳出循环时的值,而且for循环里面新定义的数据也能取 ...

  8. 大数据批量插入数据库使用(SqlBulkCopy )效率更高

    SqlBulkCopy类是System.Data.SqlClient下的类,我们开发中不常用,甚至不知道有这么一个类的存在,但确实比sql插入,事务批量插入,sql批量拼接插入快很多,比调用存储过程插 ...

  9. Map/Reduce 工作机制分析 --- 作业的执行流程

    前言 从运行我们的 Map/Reduce 程序,到结果的提交,Hadoop 平台其实做了很多事情. 那么 Hadoop 平台到底做了什么事情,让 Map/Reduce 程序可以如此 "轻易& ...

  10. 一个基于ANTLR 4的布尔表达式语句解释器的实现

    Reference The Definitive ANTLR 4 Reference, 2nd Edition. 0 Features labeled grammar definition, i.e. ...