Hive中的四种排序

1.order by

全局排序,只有一个Reducer(多个reducer无法保证全局有序),会导致当输入规模较大时,消耗较长的计算时间

hive.mapred.mode = strict 模式下 必须指定 limit 否则执行会报错。

2.sort by

不是全局排序,其在数据进入reducer前(map)完成排序,也就是说它会在数据进入reduce之前为每个reducer都产生一个排序后的文件。

因此,如果用sort by进行排序,并且设置mapreduce.job.reduces>1,则sort by只保证每个reducer的输出有序,不保证全局有序。

order by和sort by执行效率对比

一般情况下我们认为sort by 应该是比 order by 快的,因为 order by 只能使用一个reducer,进行全部排序,但是当数据量比较小的时候就不一定了,因为reducer 的启动耗时可能远远数据处理的时间长

3.distribute by

控制在map端如何拆分数据给reduce端的,hive会根据distribute by后面列,将数据分发给对应的reducer,默认是采用hash算法+取余数的方式。

4.cluster by

cluster by除了具有distribute by的功能外还兼具sort by的功能。但是排序只能是升序排序,当分区字段和排序字段相同cluster by可以简化distribute by+sort by 的SQL 写法

总结:

  1. order by 是全局排序,可能性能会比较差;
  2. sort by分区内有序,往往配合distribute by来确定该分区都有那些数据;
  3. distribute by 确定了数据分发的规则,满足相同条件的数据被分发到一个reducer;
  4. cluster by 当distribute by和sort by 字段相同时,可以使用cluster by 代替distribute by和sort by,但是cluster by默认是升序,不能指定排序方向;
  5. sort by limit 相当于每个reduce 的数据limit 之后,进行order by 然后再limit ;

来源: https://www.cnblogs.com/data-magnifier/p/14243949.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/615812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3万字数据结构与算法学习笔记+知识点总结

文章目录 数据结构与算法排序排序算法常见排序算法复杂度冒泡排序(Bubble Sort)选择排序(Selection Sort)插入排序(Insertion Sort)希尔排序(Shell Sort)堆排序(Heap Sor…

2024上海国际冶金及材料分析测试仪器设备展览会

2024上海国际冶金及材料分析测试仪器设备展览会 时间:2024年12月18~20日 地点:上海新国际博览中心 ◆ 》》》组织机构: 主办单位:全联冶金商会、中国宝武钢铁集团有限公司、上海市金属学会 支持单位&#xff…

Linux C语言 51-IO复用

Linux C语言 51-IO复用 本节关键字:Linux C语言 IO复用 相关C库函数:select(FD_SET,FD_ISSET)、epoll IO复用 epoll是Linux特有的。select是POSIX规定,一般操作系统均有实现。 名称支持进程打开最大连接数IO效率消…

浅谈电能管理系统在智能轨道交通中的设计与应用——安科瑞 顾烊宇

摘要:城市轨道交通可以填补市民出行方式的空缺,它的运行需要有持续的电能提供支持。为了给轨道交通营造稳定的运行环境,迫切需要建立相应的电能管理系统,以此实现高质量的电能供给。在本文中,将对应的电能管理系统作为…

MysqL——深入MySQL原理(一)

文章目录 MySQL架构图MySQL执行流程简要执行流程:详细执行流程 存储引擎SQL执行顺序存储结构实战演示 MySQL架构图 图例如下: server层: Connection Pool :连接池,负责管理持有所有的连接,采用BIO的技术,…

前端使用scale属性结合CSS动态样式实现动态的图片缩放效果

废话不多说&#xff0c;直接上代码&#xff1a; 示例一&#xff0c;使用css动态样式结合scale进行src图片的缩放。 //结构层&#xff0c;使用动态属性配合计算属性来实现动态样式<img :src"selectedItem.url" alt"" :style"elementStyle(item)&…

Android实现通过字符串找到图片、Class

1、通过字符串找到相应图片并展示 ApplicationInfo appInfo getActivity().getApplicationInfo();int resID getResources().getIdentifier("图片名字", "mipmap", appInfo.packageName);holder.setImageResource(R.id.title_img, resID);2、通过字符串找…

HttpURLConnection请求调用webservice接口

/*** sendUrl:接口地址&#xff1b;soapXML&#xff1a;要发送的xml数据&#xff08;入参&#xff0c;命名空间&#xff09;* */public static String send(String sendUrl, String soapXML) throws IOException {// 创建服务地址URL url new URL(sendUrl);// 打开一个通向服务…

nvm安装pnpm,pnpm不是内部或者外部指令问题解决

node版本18支持安装pnpm 如需要安装pnpm&#xff0c;要先安装nvm切换node版本&#xff0c;因为pnpm要node版本18 https://github.com/nvm-sh/nvm nvm install 18 nvm use 18如遇版本切换失败问题&#xff1a; source ~/bashrc然后安装pnpm curl -fsSL https://get.pnpm.io/…

golang学习-结构体

1、定义 使用type 和struct 关键字来定义结构体&#xff0c;是值类型 格式如下&#xff1a; type 类型名 struct { 字段名 类型 字段名 类型 ... } 2、实例化 1、var 结构体实例 结构体类型 var p1 Person 2、使用new关键字 var p2 new(Person) 3、使用&对结构体…

程序员必知!2024最新版设计模式大合集

程序员必知&#xff01;开放封闭原则的实战应用与案例分析 核心思想&#xff1a;在设计中&#xff0c;应尽量通过添加新的类或模块来增加新的功能&#xff0c;而不是修改现有的代码。 程序员必知&#xff01;依赖倒置原则的实战应用与案例分析 核心思想&#xff1a;高层模块不…

部署 Spring Boot 应用中文文档

本文为官方文档直译版本。原文链接 部署 Spring Boot 应用中文文档 引言部署到云Cloud Foundry与服务绑定 KubernetesKubernetes 容器生命周期 HerokuOpenShift亚马逊网络服务&#xff08;AWS&#xff09;AWS Elastic Beanstalk使用 Tomcat 平台使用 Java SE 平台 总结 CloudCa…

DCP文件传输的重要性与应用

在数字时代&#xff0c;文件传输已成为商业运作中不可或缺的一环。随着企业越来越多地采用云基础设施和服务&#xff0c;有效地在云和团队之间传输大文件和数据集变得至关重要。在这一背景下&#xff0c;数据复制协议&#xff08;DCP&#xff09;文件传输应运而生&#xff0c;引…

【Java】【OpenCV】【awt】两种方式实现很「高大上」图片双重曝光

自双重曝光产生以来&#xff0c;它就一直是摄影爱好者热衷于尝试的摄影手法。通过双重曝光&#xff0c;可以为普通的照片带来神秘的意境和让人难以言喻的感觉&#xff0c;使得每一个场景的纹理和颜色都有了一种如梦如幻的效果&#xff0c;让人沉醉于其中。 在以前&#xff0c;摄…

血泪教训!Java项目的路径中一定不要包含中文~

今天通过应用类加载器获取某个目录下的文件时&#xff0c;控制台一直没有输出&#xff0c;但是没有任何的报错&#xff0c;代码如下所示 ClassLoader classLoaderwjrApplicationContext.class.getClassLoader();//appURL url classLoader.getResource("com/wjr/service&qu…

达梦数据实时同步软件DMHS介绍和原理

1、产品介绍 达梦数据实时同步软件&#xff08;以下简称 DMHS&#xff09;是支持异构环境的高性能、高可靠、高可扩展数据库实时同步复制系统。该产品采用基于日志的结构化数据复制技术&#xff0c;不依赖主机上源数据库的触发器或者规则&#xff0c;对主机源数据库系统几乎无影…

Linux系统安装gflags

记录&#xff1a;这是在使用cmake项目构建时缺少gflag导致咋执行项目的时候报错 由于gflags官方网址访问不了&#xff0c;所以换了个地址&#xff0c;使用git来克隆项目 地址&#xff1a;git clone https://gitcode.com/gflags/gflags.git 下载下来之后在电脑终端执行下面的…

Python 单例模式解析复杂数组返回不同的值

单例模式是一种创建型设计模式&#xff0c;它的目的是保证一个类只有一个实例&#xff0c;并提供一个全局访问点。 单例模式的实现原理包括以下几个关键步骤&#xff1a; 将类的构造函数私有化&#xff0c;这样其他地方就无法直接通过 new 操作符来创建该类的实例。 在类的内…

Redis相关报错信息:Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝,无法连接。

报错信息&#xff1a; Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝&#xff0c;无法连接。 报错原因&#xff1a; 访问不到Redis服务 解决方案&#xff1a; 将Redis服务打开&#xff01; 使用cmd命令行打开本机服务管理&#xff1a; services…

数组深入详解

1、背景 上传图片&#xff0c;需要对图片格式进行校验&#xff0c;这是就可以使用数组 2.1、什么是数组&#xff1f; Java 语言中提供的数组是用来存储固定大小的同类型元素。 如&#xff1a;可以声明一个数组变量&#xff0c;如 numbers[100] 来代替直接声明 100 个独立变量…