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

devtools/2024/10/19 0:22:09/

一.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/devtools/125162.html

相关文章

CSS3--美若天仙!?

免责声明&#xff1a;本文仅做分享~ 目录 CSS引入方式 选择器 盒子尺寸和背景色 文字控制属性 单行文字 垂直居中 字体族 font复合属性 文本对齐方式 文本修饰线 color 文字颜色 ----- 复合选择器 伪类选择器 超链接伪类 CSS特性 继承性 层叠性 优先级 Emmet …

SBB Jar 文件

SBB Jar 文件 1. 什么是 SBB Jar 文件&#xff1f; SBB&#xff08;Service Building Block&#xff09;Jar 文件是用于打包一个或多个 SBB 的标准格式&#xff0c;广泛应用于 JAIN SLEE&#xff08;Java Integrated Networks SLEE&#xff09;环境。SBB Jar 文件包含了所有必…

【SQL】分数排名

目录 语法 需求 示例 分析 代码 语法 dense_rank() over (order by score desc) as rank SQL 中的一个窗口函数&#xff08;Window Function&#xff09;&#xff0c;用于对查询结果集中的行进行排名。这个函数特别适用于需要对某个字段&#xff08;如分数、销售额等&…

【Linux系统编程】第三十一弹---深入理解静态库:从零开始制作与高效使用的完全指南

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、静态库 1.1、怎么做静态库 1.2、怎么使用静态库 1、静态库 1.1、怎么做静态库 在Linux环境下&#xff0c;通常使用GCC&am…

粒子扩展卡尔曼滤波PEKF的MATLAB源代码

粒子滤波PF与扩展卡尔曼滤波EKF结合&#xff0c;命名为PEKF&#xff0c;主要思想是&#xff1a; 对状态量进行采样&#xff0c;并对其粒子进行EKF的求解&#xff0c;得到的粒子再经过加权平均得到估计的状态量。状态协方差、一步转移噪声协方差、观测协方差均遵循EKF。 文章目录…

Dockerfile(Jenkins)

1.创建⼀个jenkins的Dockerfile mkdir tomcat cd tomcat 2、上传需要的安装包 apache-tomcat-8.5.47.tar.gz jdk-8u211-linux-x64.tar.gz jenkins.war 3、编写Dockerfile vim Dockerfile # This my first jenkins Dockerfile # Version 1.0 FROM centos:7 MAINTAINER l…

flink-jdbc-driver

Flink JDBC 驱动程序是一个 Java 库&#xff0c;使客户端能够通过 SQL 网关将 Flink SQL 发送到 Flink 集群。 首先启动&#xff1a;1.flink集群&#xff0c;随意任何集群。 2.启动flink-sql-gateway&#xff1a; sql-gateway.sh start -Dsql-gateway.endpoint.rest.addresslo…

STM32 GPIO输出输入配置:【图文讲解】

1&#xff1a;输出配置 STM32 GPIO输出有四种配置&#xff1a;开漏输出\推挽输出\复用开漏\复用推挽 1&#xff1a;开漏输出&#xff1a; 输出端相当于三极管的集电极。要得到高电平状态需要上拉电阻才行&#xff0c;适合于做电流型的驱动&#xff0c;其吸收电流的能力相对强…