Hive分组排序

2023-11-15

系统环境

Linux Ubuntu 16.04

jdk-7u75-linux-x64

hive-1.1.0-cdh5.4.5

hadoop-2.6.0-cdh5.4.5

mysql-5.7.24

相关知识

Hive中支持多种分组操作:Order by、Sort by、Group by、Distribute by、Cluster by等

(1)Hive中的Order by和传统Sql中的Order by一样,对查询结果做全局排序,会新启动一个Job进行排序,会把所有数据放到同一个Reduce中进行处理,不管数据多少,不管文件多少,都启用一个Reduce进行处理。如果指定了hive.mapred.mode=strict(默认值是nonstrict),这时就必须指定limit来限制输出条数,原因是:所有的数据都会在同一个Reducer端进行,数据量大的情况下可能不出结果,那么在这样的严格模式下,必须指定输出的条数。

(2)Sort by是局部排序,会在每个Reduce端做排序,单个Reduce出来的数据是有序的,假设我设置了3个Reduce,那么这3个Reduce就会生成三个文件,每一个文件都会按Sort by后设置的条件排序,但是当这3个文件数据合在一起就不一定有序了,一般情况下可以先进行Sort by局部排序完成后,再进行全局排序,就会提高不少效率。

(3)Group by是分组查询,一般配合聚合函数一起使用,Group by有一个原则,就是Select后面的所有列中,没有使用聚合函数的列,必须出现在Group by后面。

(4)Hive中的Distribute by是控制在Map端如何拆分数据给Reduce端的。按照指定的字段对数据划分到不同的Reduce输出文件中,默认是采用Hash算法。对于Distribute by进行测试,一定要分配多Reduce进行处理,否则无法看到Distribute by的效果。

(5)Cluster by除了具有Distribute by的功能外还兼具Sort by的功能,相当于Distribute by+ Sort by的结合,但是排序只能是倒叙排序,不能指定排序规则为ASC或者DESC。

任务内容

1.全局排序Order by与局部排序Sort by的用法,以及各自适用的场景。

2.分组查询Group by的应用场景与基本语法。

3.Cluster by与Distribute by和Sort by的关系及操作。

任务步骤

1.首先检查Hadoop相关进程,是否已经启动。若未启动,切换到/apps/hadoop/sbin目录下,启动Hadoop。

jps  
cd /apps/hadoop/sbin  
./start-all.sh  

2.然后开启Mysql,用于存放Hive的元数据。(密码:zhangyu)

sudo service mysql start  

3.切换到/data/hive4目录下,如不存在需提前创建hive4文件夹。

mkdir /data/hive4  
cd /data/hive4  

4.使用wget命令,下载http://192.168.1.100:60000/allfiles/hive4中的文件。

wget http://192.168.1.100:60000/allfiles/hive4/goods_visit
wget http://192.168.1.100:60000/allfiles/hive4/order_items
wget http://192.168.1.100:60000/allfiles/hive4/buyer_favorite

5.在终端命令行界面,直接输入Hive命令,启动Hive命令行。

hive  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hive分组排序 的相关文章

随机推荐

  • IDEA常用快捷键

    IDEA常用快捷键 快捷键 描述 Ctrl Shift R 全局搜索 替换 Ctrl Shift F 全局搜索 Ctrl F 局部搜索 Shift双击 搜索类 接口等 Ctrl 鼠标点击类名称 进入类的内部 Ctrl Alt O 清除不使用
  • 气候数据处理代码实现

    案例 根据站点降雨量日数据求月总降雨量 年总降雨量 月降雨天数 年降雨天数等 数据 部分数据如下 统计结果
  • 怎么理解KMP算法中的next数组(为甚有时候加一有时候不加一?)

    KMP算法怎么来的和找规律 以及对于BF算法他的主要区别就不再赘述我们 我们来说一下怎么用最快的速度加上已知规律找到给定字符串的next数组 C语言中和java中都适用 我们已经找到了部分规律 next数组中的值可能和已匹配部分字符串的前缀
  • 关于RabbitMQ的面试题

    关于RabbitMQ的面试题 整理了一下面试中问到rabbitmq消息队列时 面试官可能会问到的问题 面试题1 为什么使用rabbitmq 什么时候用 怎么用 一开始写项目 架构比较单一 使用的是单体结构 把所有的业务都堆积在一个项目里 随
  • [1220]hue数据导出

    1 执行要下载的sql语句 2 执行完成后 点击下面导出 3 选择所有 4 选择每个人对应的文件夹 没有自己名称的可以创建一个 5 选择导出 6 右面是导出执行时的界面 7 选择已经执行的文件 8 按照下面截图提示 就可以将文件下载到本地了
  • iOS上架报错:无法添加以供审核

    无法提交以供审核 要开始审核流程 必须提供以下项目 您必须为要添加的 app 提供版权信息 您在提交 app 审核时遇到的问题是因为需要提供版权信息 而您的 app 缺少相关的版权信息 以下是解决此问题的步骤 确认您是否拥有 app 的版权
  • kettle 关于数据库事务操作的解释说明

    事务与数据库 1 数据库连接只在执行作业或转换时使用 在作业里 每一个作业项都打开和关闭一个独立的数据库连接 转换也是如此 但是因为转换里的步骤是并行执行的 每个步骤都打开一个独立的数据库连接并开始一个事务 尽管这样在很多情况下会提高性能
  • Airbnb深度学习在搜索领域的探索总结

    今天的博客主要参考了Airbnb发表的paper Applying Deep Learning To Airbnb Search 这篇paper介绍了近2年Airbnb在搜索场景下所使用模型的演进路线 以及一些失败的总结和经验的总结 最难能
  • 常用的渗透测试工具之 SQLMap

    web安全攻防 第三章学习之SQLmap SQLMap介绍 SQLMap是自动化的SQL注入工具 主要功能是扫描 发现并利用URL的SQL注入漏洞 内置了很多绕过插件 SQLMap采用了五种独特的SQL注入技术 如下 1 基于布尔类型的盲注
  • maven deploy 遇到 “方法不会覆盖或实现超类型的方法” 不要慌

    思考问题 这个bug看的我莫名其妙 看名字也看不懂说的啥 在网上看到说什么把 Override去掉就行了什么 我就觉得很奇怪 跟这个能有什么关系呢 网上既然说是跟 Override有关 那么这应该是是跟我实现的接口有关 后来发现是我在接口中
  • 【星海随笔】Windows 下 安装 Eclipse IDE 编辑 C++ Code

    首先下载Eclips https download csdn net download weixin 41997073 86727250 安装后 然后点点点就可以了 但要记住自己安装的路径 安装后 先认识一下这个工具 File可以创建项目
  • sublime vue 语法高亮插件安装

    转自 http www cnblogs com cosnyang p 6290950 html 默认情况下 Vue js 的单文件组件 vue 在 sublime 编辑器中是不被识别的 若要想高亮显示 需要安装插件 Vue Syntax H
  • No such operator image::read_file问题解决

    在学习动手学深度学习这门课的时候 在13 6 节 标检测数据集这一章遇到了问题 读取数据的时候报错 No such operator image read file 网上有人说问题在于pytorch版本和torchvision版本不对应 可
  • weixin-js-sdk使用

    注意 以下内容自身的项目为uniapp编译生成微信小程序 小程序内嵌webview 一 微信初始化 安装微信sdk npm install weixin js sdk save 页面引入 import wx from weixin js s
  • 构建高性能数据库缓存之Redis(一)

    一 Redis概述 1 1 什么是redis Redis是一个开源的用ANSI C编写 支持网络 基于内存 亦可持久化的日志型 Key Value数据库 根据DB Engines com站点月度排行的数据显示 Reidis是最流行的键值对存
  • SpringBoot整合MinIO

    文章目录 1 问题背景 2 前言 3 步骤 3 1 引入依赖 3 2 连接MinIO服务端的必要参数 3 3 代码实现文件上传功能 3 4 验证 1 问题背景 前面搭建了MinIO容器 现在来研究SpringBoot整合MinIO 2 前言
  • 并发编程基础知识(一)[进程篇]

    目录 一 程序的执行方式 1 进程是什么东西 2 进程与程序区别 3 进程状态 4 linux进程地址空间布局 5 linux下进程相关的API函数 1 创建一个新进程 2 进程退出 3 等待子进程退出 4 让一个进程去执行一个指定的程序文
  • 什么是迁移学习(Transfer Learning)?【精讲+代码实例】

    文章目录 1 Introduction 2 Development of Machine Learning 3 What is transfer learning 4 How to transfer 4 1 Example 1 物体识别 4
  • UE4 C++ 类的4种引用类型,和异步加载资产

    UE4 C 类的4种引用类型 和异步加载资产 4种引用类型 对象引用 引用 World 的实例对象 就是直接定义 UPROPERTY EditAnywhere BlueprintReadOnly Category My 对象引用 UWorl
  • Hive分组排序

    系统环境 Linux Ubuntu 16 04 jdk 7u75 linux x64 hive 1 1 0 cdh5 4 5 hadoop 2 6 0 cdh5 4 5 mysql 5 7 24 相关知识 Hive中支持多种分组操作 Ord