HIVE --- 高级查询

news2024/11/16 2:20:09

目录

CTE和嵌套查询

嵌套查询

关联查询(join)

MapJoin

MapJoin操作在Map端完成

开启MapJoin操作

MAPJOIN不支持的操作

union

数据交换(import/export)

数据排序

order by

sort by

distribute  by

cluster by


CTE和嵌套查询

-- CTE语法
WITH t1 AS (SELECT …) SELECT * FROM t1;
-- CTE演示
with tab1 as (select id,name,age from people) 
select * from tab1;

嵌套查询

-- 嵌套查询示例
SELECT * FROM (SELECT * FROM employee) ;

关联查询(join)

指对多表进行联合查询

JOIN用于将两个或多个表中的行组合在一起查询

类似于SQL JOIN,但是Hive仅支持等值连接 

JOIN发生在WHERE子句之前

内连接:inner join

外连接:outer join

        right join, left join, full outer join

交叉连接:cross join

隐式连接:Implicit join

MapJoin

MapJoin操作在Map端完成

  • 小表关联大表
  • 可进行不等值连接

开启MapJoin操作

set hive.auto.convert.join = true(默认值)

运行时自动将连接转换为MapJoin

MAPJOIN不支持的操作

在union all, lateral view, group by/join/sort by/cluster by/distribute by等操作后面

在union, join以及其他 MapJoin之前

union

  • 所有子集数据必须具有相同的名称和类型

UNION ALL:合并后保留重复项

UNION:合并后删除重复项

  • 可以在顶层查询中使用 order by, sort by , cluster by, distribute  by 和limit适用于合并后的整个结果
  • 集合其他操作可以使用 join、outer join来实现 (差集、交集)

数据交换(import/export)

import 和 export用于数据导入和导出

除数据库,可导入导出所有数据和元数据

导出数据(export)
 

export table employee to '/tmp/output3';
export table employee_partitioned partition (year=2014, month=11) to '/tmp/output5';

导入数据(import)

import table employee from '/tmp/output3';
import table employee_partitioned partition (year=2014, month=11) from '/tmp/output5';

数据排序

order by

order by (asc|desc)类似于标准SQL

只使用一个Reducer执行全局数据排序

速度慢,应提前做好数据过滤 支

持使用case when或表达式

支持按位置编号排序

select employee_id,name
from employee_id
order by employee_id;

 

sort by

sort by对每个Reducer中的数据进行排序

当Reducer数量设置为1时,等于order by

排序列必须出现在select column列表中

distribute  by

distribute  by类似于标准SQL中的group by

根据相应列以及对应reduce的个数进行分发

  •     默认是采用hash算法
  •     根据分区字段的hash码与reduce的个数进行模除

通常使用在SORT BY语句之前

select name,skills_score,depart_title
from employee_id
distribute by depart_title sort by skills_score desc;

cluster by

cluster by=distribute  by+sort by

不支持asc|desc

排序列必须出现在select column列表中

为了充分利用所有的Reducer来执行全局排序,可以先使用cluster by,然后使用order by

SELECT name, employee_id
FROM employee_id CLUSTER BY name;

 

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

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

相关文章

Authing 入选德勤“中国明日之星”企业榜单

近日,德勤发布“德勤中国明日之星”榜单,该项目致力于发掘和表彰蓬勃成长、持续创新、积极承担社会责任的卓越企业。该榜单1995 年创立至今,被业界誉为“全球高成长企业的标杆”。Authing 凭借在 IDaaS(身份云) 领域突…

【likeshop】开源商城系统代码有什么好?

​开源是什么? 开源是指软件的源代码开放给任何人自由使用、修改和再分发的概念。开源软件的源代码可以免费获取,用户可以根据自己的需要修改源代码,并且可以将修改后的代码免费分发给其他人使用。开源软件的源代码是公开的,其他人…

谈谈分布式系统的CAP理论

目录什么是CAP为什么三者不可得兼CAP原则权衡CAP原则实际应用什么是CAP CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区…

软件测试从业多年,一直认为自己技术不错,裸辞后一晃 ,失业3个月了~

最近,找了很多软测行业的朋友聊天、吃饭 ,了解了一些很意外的现状 。 我一直觉得他们技术非常不错,也走的测开/管理的路径;疫情原因,二三月份裸辞的,然后一直在找工作,现在还没找到工作 。 经…

Linux 文件基本属性

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。 为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。 在 Linux 中我们通常使用以下两个命…

(考研湖科大教书匠计算机网络)第六章应用层-第七节:万维网WWW

获取pdf:密码7281专栏目录首页:【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一:万维网概述二:万维网应用(1)URI和URLA:URI和URL关系B:URL格式(2&#xff09…

Docker 基本操作

image操作从Docker Hub 拉取已有镜像一个Docker 镜像(image)包含了程序代码和程序运行所依赖的所有环境。 Docker 镜像一般存放在镜像仓库服务(Image Registry)里,默认的镜像仓库服务是Docker Hub。 用户可以制作、构建镜像、将镜像上传到镜像仓库服务,从…

uniCloud云开发----7、uniapp通过uni-swiper-dot实现轮播图

uniapp通过uni-swiper-dot实现轮播图前言效果图1、官网实现的效果2、需求中使用到的效果图官网提供的效果图源码1、html部分2、js部分3、css部分根据需求调整轮播图前言 uni-swiper-dot.文档 uni-swiper-dot 轮播图指示点 - DCloud 插件市场 本次展示根据需求制作的和官网用到…

记一次从文件备份泄露到主机上线

前言 记录下某个测试项目中,通过一个文件备份泄露到主机上线的过程。 文件备份泄露 对于测试的第一项当然是弱口令,bp跑了一通词典,无果。目录又爆破了一通,发现一个web.rar可通,赶紧下载看看,如下图所示…

uniapp项目搭架和首页制作

论坛项目uniapp跨端创建uniapp项目备注:配置常用目录(目录名称可自定义)配置项目的tabbar在page.json文件中配置。"tabBar": {"borderStyle": "black","color": "#90868a","selected…

CTFer成长之路之命令执行漏洞

命令执行漏洞CTF 死亡ping命令 题目描述: 路由器管理台经常存在的网络ping测试,开发者常常会禁用大量的恶意字符串,试试看如何绕过呢? docker-compose.yml version: "3.2"services:converter:image: registry.cn-hangzhou.ali…

液氮恒温器(电学)T9015的技术规格

液氮型低温恒温器,利用液氮作为降温媒介,标准恒温器可实现快速降温至液氮温度(约20min),其工作原理是在恒温器内部液氮腔内装入液氮,通过调整控温塞与冷指的间隙来保持冷指的漏热稳定在一定值上&#xff0c…

【测试面试】头条大厂,测试开发岗真实一面。你能抵得住吗?

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 小吴: 现…

力扣SQL刷题12

目录标题176. 第二高的薪水 - 输出null问题177. 第N高的薪水--omg,第一次遇到SQL里写function178. 分数排名 - 简单626. 换座位 - 新题型176. 第二高的薪水 - 输出null问题 题型:输出第二大的数值,且不存在时输出null 解答: 解法…

ELK日志分析--ES(Elasticsearch)--(一)

ES基本介绍 单机ES部署 ES(Elasticsearch)集群部署 1.基本介绍 Elasticsearch:存储、搜索和分析 Elasticsearch是Elastic Stack核心的分布式搜索和分析引擎。Logstash和Beats有助于收集,聚合和丰富你的数据并将其存储在Elastics…

Revit教程:标注技巧,底部延伸距离“设置,实时轴号

一、Revit在三维视图中的高程点标注技巧 一般在平面图上高程点是水平放置的,但是在三维显示中,如何将高程点水平放置呢? 在三维视图中,有些时候根据项目要求,要在建筑上放置高程点,但是将视图旋转以后,高程…

【python】anaconda 管理 python 环境

anaconda 管理虚拟环境anaconda 简介python 虚拟环境的安装查看当前 anaconda中所有的虚拟环境创建新的虚拟环境激活所创建的虚拟环境删除指定的虚拟环境退出当前虚拟环境查看当前虚拟环境中所有安装的库安装常用包pycharmpycharm 下环境配置pycharm 使用anaconda 简介 anacon…

新能源车动力总成技术探讨:混动和纯电之争、电驱动未来发展趋势

随着我国节能与新能源汽车渗透率提升,对节能与新能源车各种技术路线特别是动力总成技术的探讨,也成为汽车产业各级企业人士讨论的热点。爱普搜汽车、精研院邀请了汽车行业众多整车厂、Tier 1/2企业、中汽协、汽车技术咨询公司的技术专家/高管&#xff0c…

数据结构与算法之最小爬楼梯费用动态规划

继续上一道题目,在上一道题目的基础之上,我们来解决这一道爬楼梯最小费用题。一.题目描述二.思路(动态规划五部曲)确定dp数组以及下标的含义使用动态规划,就要有一个数组来记录状态,本题只需要一个一维数组dp[i]就可以了。dp[i]的…

剑指 Offer 34. 二叉树中和为某一值的路径

摘要 剑指 Offer 34. 二叉树中和为某一值的路径 注意到本题的要求是,找到所有满足从根节点到某个叶子节点经过的路径上的节点之和等于目标和的路径。核心思想是对树进行一次遍历,在遍历时记录从根节点到当前节点的路径和,以防止重复计算。 …