Python大数据学习之Hadoop学习——day08_hive函数

ops/2024/10/21 10:02:48/

一.hive查询

语法结构:

SELECT [ALL | DISTINCT] 字段名,字段名,...

FROM 表名 [inner | left outer | right outer | full outer | left semi join 表名 on 关联条件]

[where 非聚合条件]

[GROUP BY 分组字段名]

[HAVING 聚合条件]

[ORDER BY 排序字段名 asc | desc]

[CLUSTER BY 字段名 | [DISTRIBUTE BY 字段名 SORT BY 字段名]]

[LIMIT x,y]

类sql基本查询

知识点:

基础查询格式:select distinct 字段名 from 表名;

        注意:*代表所有字段 distinct去重 as给表或者字段起别名

条件查询格式:select distinct 字段名 from where 条件;

                        比较运算符:> < >= <= != <>

                        逻辑运算符:and or not

                        模糊查询:%代表任意0个或者多个字符

                                          _代表任意1个字符

                        空判断:为空is null        不为空is not null

                        范围查询:x到y的连续范围:between x and y

                                        x或者y或者z类的非连续范围:in(x,y,z)

                        排序查询格式:select distinct 字段名 from 表名 [where 条件] order by 排序字段名 asc | desc ;

聚合查询格式:select distinct 字段名 from 表名;

                        聚合函数:count() sum() avg() max() min()

分组查询格式:select 分组字段名,聚合函数(字段名) from 表名 [where 非聚合条件] group by 分组字段名 [having 聚合条件];

分页查询条件:select 字段名 from 表名 [order by 排序字段名 asc|desc] limit x,y;

类sql多表查询

知识点:

交叉连接格式:select 字段名 from 左表 cross join 右表

内连接格式:select 字段名 from 左表 inner join 右表 on 左右表关联条件;

左外连接格式:select 字段名 from 左表 left outer join 右表 on 左右表关联条件;

右外连接格式:select 字段名 from 左表 right outer join 右表 on 左右表关联条件;

自连接:本质是一个特殊的内外连接,最大特点就是左右表是同一个表

子查询:本质是一个select语句作为另外一个select语句的一部分(表或者条件)

hive其他join操作

知识点:

全外连接:左表 full [outer] join 右表 on 条件

左半开连接:左表 left semi join 右表 on 条件

hive其他排序操作[练习]

知识点:

set mapreduce.job reduces: 查看当前设置的reduce数量,默认结果是-1,代表自动reduce数量和桶数量一致

set mapreduce.job.reduce = 数量 :-- 修改reduce数量

cluster by 字段名:分桶且正序排序

distribute by 字段名 sort by 字段名:distribute by 负责分,sort  by 负责排序,相对比较灵活

order by 字段名:全局排序 

注意:cluster by 和 distribute by 字段名 sort by 字段名 受当前设置的reduces数量影响,但是设置的reduce数量对order by 无影响,因为order by 就是全局排序,就是一个reduce

  

建表的时候指定分桶字段和排序字段:clustered by (字段名) sorted by (字段名) into 桶数量 bucket

注意:如果建表的时候设置了桶数量,那么reduce设置建议为-1或者大于桶数量

抽样查询

知识点:

正则模糊查询

sql模糊查询关键字:like        

 

正则模糊查询关键字:rlike

union联合查询

union联合查询: 

 

union [distinct]:去重,省略了distinct

union all:不去重

CTE表达式

with 临时结果集别名1 as (子查询语句),

        临时结果集别名2 as (子查询语句)

...

select 字段名 from (子查询语句)

内置虚拟列

知识点:


http://www.ppmy.cn/ops/123394.html

相关文章

机器学习——多模态学习

多模态学习&#xff1a;机器学习领域的新视野 引言 多模态学习&#xff08;Multimodal Learning&#xff09;是机器学习中的一个前沿领域&#xff0c;它涉及处理和整合来自多个数据模式&#xff08;如图像、文本、音频等&#xff09;的信息。随着深度学习的蓬勃发展&#xff0…

【算法】链表:2.两数相加(medium)+模拟

系列专栏 《分治》 《模拟》 《Linux》 目录 1、题目链接 2、题目介绍 3、解法 (模拟) 4、代码 1、题目链接 2. 两数相加 - 力扣&#xff08;LeetCode&#xff09; 2、题目介绍 3、解法 (模拟) 理解题目要求&#xff1a; 我们有两个链表&#xff0c;每个链表代表一个…

LeetCode讲解篇之1143. 最长公共子序列

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 这题我们可以采用动态规划求解&#xff0c;用一个二维数组记录text1的0 ~ i区间子串和text2的0 ~ j区间子串的最长公共子序列的长度&#xff0c;我们假设该二维数组是f 这个数组有一个特性&#xff0c;如果a <…

MyBatis之TypeHandler的自定义实现

文章目录 一、TypeHandler概述二、TypeHandler的工作原理1.设置参数&#xff08;Parameter Setting&#xff09;2.获取结果&#xff08;Result Getting&#xff09;3.类型映射和转换规则4.自定义TypeHandler的扩展性 三、自定义的具体实现业务场景分析需求具体实现 一、TypeHan…

数据结构——排序(交换排序)

目录 一、交换排序的总体概念 二、冒泡排序 三、快速排序 1.挖坑法 2.左右指针 3.前后指针 一、交换排序的总体概念 交换排序是一类排序算法&#xff0c;它的核心思想是通过交换元素的位置来达到排序的目的。在排序过程中&#xff0c;比较数组中的元素对&#xff0c;如果…

RTC -

RTC 目录 RTC 回顾 RTC 如何实现RTC制作一个时钟日历 代码编写 rtc.c完整代码 模块开发的步骤&#xff1a; 1、找文档 2、 在文档里面找通信方式&#xff0c;通信过程&#xff08;协议&#xff09; 3、代码> -- 前面学的是模块的开发&#xff0c;串口类&#xff0c;I…

Expectation-Maximization Algorithm(EM算法)

EM算法&#xff08;Expectation-Maximization Algorithm&#xff0c;期望最大化算法&#xff09;是一种迭代优化算法&#xff0c;主要用于在含有隐变量&#xff08;未观测变量&#xff09;或不完全数据的概率模型中&#xff0c;估计参数的最大似然估计&#xff08;Maximum Like…

初学Java基础Day15---面相对象之this,static关键字,静态代码块

一&#xff0c;this关键字 1.概念&#xff1a; 表示本对象 2.理解&#xff1a; 哪个对象调用该方法&#xff0c;该方法里的this就表示该对象 3.作用&#xff1a; 1.this.属性 &#xff1a; 调用本对象的成员属性 2.this.方法 &#xff1a; 调用本对象的成员方法 3.this() : …