IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 【Hive基础】 -> 正文阅读

[大数据]【Hive基础】

一、Hive中的数据库

(1)创建数据库

Hive会为每个数据库在HDFS创建一个目录。 数据库中的表将会以这个数据库目录的子目承形式存储。有一个例外就是自带的default数据库,这个数据库没有自己的目录。

代码如下(示例):

CREATE DATABASE school;
CREATE DATABASE IF NOT EXISTS school;

IF NOT EXISTS子句是可选的,如果数据库school已经存在的话,那么会抛出一个错误信息。加入IF NOT EXISTS子句可以避免这种情况下抛出错误信息。

(2)查看Hive中包含的数据库

代码如下(示例):

SHOW DATABASES;
(3)USE命令

USE命令用于将某个数据库设置为用户当前的工作数据库,和在文件系统中切换工作目录是一个概念。
代码如下(示例):

USE school;
(4)删除数据库

代码如下(示例):

DROP DATABASE school;
DROP DATABASE IF EXISTS school;
DROP DATABASE IF EXISTS school CASCADE;

IF EXISTS子句是可选的,如果加了这个子句,就可以避免因数据库school不存在而抛出的警告信息。
另外Hive是不允许删除一个包含有表的数据库。用户要么先删除数据库中的表再删除数据库,要么在删除命令的最后加上CASCADE关键字,CASCADE关键字可以使Hive自行先删除数据库中的表,再删除数据库。

二、Hive中的表

1、数据类型

数据类型长度例子
TINYINT1byte有符号整数10
SMALINT1byte有符号整数10
INT1byte有符号整数10
BIGINT1byte有符号整数10
BOOLEAN布尔类型TRUE、FALSE
FLOAT单精度浮点数1.0
DOUBLE双精度浮点数1.0
STRING字符串“abcd”
TIMESTAMP日期,时间戳或者字符串13584697223或者2021-12-25 1:12:23
ARRAY一组有序字段,类型必须相同Array(1,2)
MAP一组无序的键值对Map(‘a’,1,‘b’,2)
STRUCT一组命名的字段,字段类型可以不同Struct(‘a’,1,1,2)

2、分隔符

分隔符描述
\n行分隔符
^A列分隔符
^BARRAY、MAP、STRUCT中元素之间的分隔符
^CMAP中KEY和VALUE之间的分隔符

3、建表语句

(1)建表语句

代码如下(示例):

CERAT TABLE student;
(2)自定义行分隔符

代码如下(示例):

LINES TERMINATED BY '\n'
(3)列分隔符

列分隔符要放到以下子句后边
子句(示例):

ROW FORMAT DELIMITED

自定义列分隔符
代码如下(示例):

FIELDS TERMINATED BY ' '  (设置空格为列分隔符)

自定义集合分隔符
代码如下(示例):

COLLECTION TERMINATED BY ' '  (设置空格为集合分隔符)

自定义Map分隔符
代码如下(示例):

MAP TERMINATED BY ' '  (设置空格为Map分隔符)
(4)整理

完整建表代码(示例):

CREATE TABLE IF NOT EXISTS student(
  id INT COMMENT '序号',
  name STRING COMMENT '名字'
) ROW FORMAT DELIMITED
FIELDS TERMINATED BY ' ';

4、装载数据

把HDFS的数据装载进表
代码如下(示例):

LOAD DATA INPATH '/hive/student.txt' INTO TABLE student;

在LOAD后添加LOCAL关键字,那么这个路径就是本地(Linux) 文件系统路径,文件将会被上传到表目录中。(本地数据装载进表)
代码如下(示例):

LOAD DATA LOCAL INPATH '/home/hadoop/hive/teacher.txt' INTO TABLE teacher;

在INTO后添加OVERWRITE关键字,那么表目录中的数据会先被删除。也就是说没有OVERWRITE时装载数据是进行追加操作,有OVERWRITE时装载数据时进行覆盖操作。(本地数据覆盖进表)
代码如下(示例):

LOAD DATA LOCAL INPATH '/home/hadoop/hive/teacher.txt' INTO TABLE OVERWRITE teacher;

三、查询语法

1、SELECT…FROM…WHERE…语句

SELECT是HiveQL中的查询语句,FROM子句标识了从哪个表选择记录,WHERE子语句通过谓词表达式设置过滤条件。

Hive中的谓词操作符
操作符支持的数据类型描述
A=B基本数据类型如果 A 等于 B则返回TRUE否则返回FALSE
A<>B,A!=B基本数据类型如果 A 不等于 B则返回TRUE否则返回FALSE
A>B,A<B,A>=B,A<=B基本数据类型如果 A 大于/小于/大于等于/小于等于 B则返回TRUE否则返回FALSE
A IS NULL所有数据类型如果 A 等于NULL则返回TRUE否则返回FALSE
A IS NOT NULL所有数据类型如果 A 不等于NULL则返回TRUE否则返回FALSE
A BETWEEN B AND C基本数据类型如果 A 大于等于 B 并且小于等于 C 则返回TRUE否则返回FALSE
A IN (B,C)所有数据类型如果 A 等于 B 或 C 则返回TRUE否则返回FALSE

对于字符串类型可以使用LIKE进行模糊查询,其中%匹配任意个字符,_匹配一个字符。'x%'表示以字母x开头; '%x’表示以字母x结尾; '%x%'表示包含字母x。
多个查询条件之间可以使用AND或者OR拼接,AND表示并且,OR表示或者。
所有的查询条件都可以使用NOT进行取反操作。

案例
代码如下(示例):

SELECT * FROM student;
SELECT * FROM student WHERE age > 20;
SELECT * FROM student WHERE age != 20;
SELECT * FROM student WHERE name LINK 'a%';
SELECT * FROM student WHERE age >= 20 AND age <=21;
SELECT * FROM student WHERE age BETWEEN 20 AND 21;

2、聚合函数

常用的Hive的内置聚合函数
返回值类型函数描述
BIGINTcount(*)计算总行数,包含NULL值的行
DOUBLEsum(col)计算指定行的值的和
DOUBLEavg(col)计算指定行的值的平均数
DOUBLEmin(col)计算指定行的最小值
DOUBLEmax(col)计算指定行的最大值

案例
代码如下(示例):

SELECT COUNT(*) FROM student;
SELECT AVG(age) FROM student;
SELECT MIN(age) FROM student;
SELECT MAX(age) FROM student;

3、排序

ASC 升序(默认),DESC 降序
ORDER BY:全局排序

代码如下(示例):

SELECT * FORM student ORDER BY age ASC;
SELECT * FROM student ORDER BY age DESC;

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-20 18:27:52  更:2021-11-20 18:29:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:08:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码