大数据 -14-Hive HQL 表连接查询 HDFS 导入导出 逻辑运算 函数查询 全表查询

点一下关注吧!!!非常感谢!!持续更新!!!
🚀 AI 篇持续更新中!(长期更新)
目前 2025 年 06 月 16 日更新到:AI 炼丹日志-29 - 字节跳动 DeerFlow 深度研究框架 私有部署 测试上手 架构研究,持续打造实用 AI 工具指南!📐🤖
💻 Java 篇正式开启!(300 篇)
目前 2025 年 06 月 17 日更新到:Java-48 深入浅出 Tomcat 手写 Tomcat 实现【01】 MiniCat Bootstrap HttpServlet Request ResponseMyBatis 已完结,Spring 已完结,Nginx 已完结,Tomcat 正在更新,深入浅出助你打牢基础!
📊 大数据板块已完成多项干货更新(300 篇)
包括 Hadoop、Hive、Kafka、Flink、ClickHouse、Elasticsearch 等二十余项核心组件,覆盖离线+实时数仓全栈!目前 2025 年 06 月 13 日更新到:大数据-278 Spark MLib - 基础介绍 机器学习算法 梯度提升树 GBDT 案例 详解

章节内容
上一节我们完成了:
启动 Hive
测试 Hive
修改配置
简单测试
背景介绍
这里是三台公网云服务器,每台 2C4G,搭建一个 Hadoop 的学习环境,供我学习。之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的 3 台机器
2C4G 编号 h121
2C4G 编号 h122
2C2G 编号 h123

数据导入
在 Hive 中,HQL(Hive Query Language)支持多种数据的导入与导出方式,用于将数据写入 Hive 表或从表中导出至本地/HDFS/其他系统。这些操作本质上依赖于 HDFS、MapReduce、Hive 的存储和查询机制。
从本地文件导入数据(LOAD DATA LOCAL)
LOCAL:表示文件在客户端本地;不写 LOCAL 则表示是 HDFS 上的路径。
INTO:表示保留原有数据;使用 OVERWRITE 则会清空表中原数据。
要求目标表必须已存在。
文件格式必须与表定义一致(例如分隔符)。
从 HDFS 导入数据(LOAD DATA)
文件需预先放置于 HDFS 中(使用 hdfs dfs -put)。
适用于大文件。
使用 INSERT 导入查询结果
将查询结果插入到目标表:
或覆盖已有数据:
可用于不同表、不同字段映射的结构化导入。
也可以和 PARTITION、DYNAMIC PARTITION 配合使用。
使用外部表读取已有 HDFS 数据
Hive 不会管理该目录数据的生命周期。
删除表不会删除 HDFS 上的数据。
使用 Sqoop 导入关系型数据库数据(常见于 MySQL → Hive)
数据导出
查询导出到本地(INSERT OVERWRITE DIRECTORY)
LOCAL 表示导出到本地文件系统;不写则导出到 HDFS。
结果存储为纯文本文件,适合进一步处理或使用。
查询导出到 HDFS
使用 Hive EXPORT 导出整个表数据和元数据
会在指定路径下创建表结构和数据的拷贝(备份用途)。
配合 IMPORT 可将整个表恢复或迁移到另一 Hive 实例。
Sqoop 导出到关系型数据库(如 Hive → MySQL)
使用建议
本地 CSV 小文件 → Hive:LOAD DATA LOCAL INPATH
大文件导入:HDFS + LOAD DATA INPATH
结构化转换/插入:INSERT INTO/OVERWRITE TABLE
查询结果导出为文件:INSERT OVERWRITE DIRECTORY
Hive → Hive 迁移:EXPORT + IMPORT
Hive ↔ MySQL:使用 Sqoop
实机测试
默认格式
将查询结果导出到本地

我们查看目录,已经导出了:

使用 vim 工具查看具体内容:
自定格式
我们发现,默认格式导出的有一些符号,我们可以指定符号:

同样,我们使用 vim 工具打开查看情况:
导出至 HDFS
执行结果如下:

我们查看 HDFS 内容,可以看到:

HQL
新建文件
新建一个文本文件,写入如下的内容,用作后续的测试
上传文件
将文件上传至 HDFS
创建新表
我们将数据加载到 Hive 中

全表查询
可以看到数据已经按照我们的想法导入了:

部分字段查询
这与我们平常写 SQL 基本是一样的:

函数查询

限制条数

WHERE

逻辑运算
GROUP BY

ORDER BY

版权声明: 本文为 InfoQ 作者【武子康】的原创文章。
原文链接:【http://xie.infoq.cn/article/03b09b47576cd95dbf4b45158】。文章转载请联系作者。
评论