HIVE表 DML 操作——第4关:将 select 查询结果写入文件

简介: HIVE表 DML 操作——第4关:将 select 查询结果写入文件

任务描述

本关任务:根据编程要求将select查询结果写入文件。


相关知识

为了完成本关任务,你需要掌握:1.单文件写入,2.多文件写入。


可以把Hive查询结果写入或导出到文件中,与查询结果插入到表中类似,导出 Hive表中的数据到文件也有两种方法,分别是单文件写入和多文件写入。


单文件写入
INSERT OVERWRITE [LOCAL] DIRECTORY directory
[ROW FORMAT row_format] [STORED AS file_format]
SELECT select_statement FROM from_statements;


若指定LOCAL关键字,查询结果写入本地文件系统中(OS 文件系统);否则,查询结果写入到分布式文件系统中(HDFS)。

row_format:
DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char][MAP KEYS TERMINATED BY char] [NULL DEFINED AS char]

row_format个属性说明参见 Hive DDL操作(一) 创建表部分。


  • 如将shopping表中数据写入到/home/example目录下:
insert overwrite local directory '/home/example'
select * from shopping;

会在/home/example目录下生成000000_0文件。


多文件写入
FROM from_statement
INSERT OVERWRITE  [LOCAL] DIRECTORY directory1
SELECT select_statement1
[INSERT OVERWRITE  [LOCAL] DIRECTORY directory2
SELECT select_statement2];


编程要求

test4数据库中有student表,表中数据如下:

Sno name age sex score(Chinese-Math-English)
001 Xiaohong 18 female 96-88-90.5
002 Xiaoliang 17 male 95-88-93.5
003 Xiaoming 19 male 86.5-98-91
004 Xiaoguang 18 male 88-80-94
005 Xiaohua 16 female 97-58.5-88


  • 查询student表中的前两条数据写入到本地文件/home/test4目录下
  • 查询student表中男生的数据写入到本地文件/home/test4_1目录下,女生的数据写入到本地文件/home/test4_2目录下
由于hive启动时间较长,测评时请耐心等待,大概需要时间:1-2分钟。


测试说明

平台会对你编写的命令进行测试:

若操作成功,会显示如下信息:

test4目录下文件内容为:
2Xiaoliang17male95.088.093.5
1Xiaohong18female96.088.090.5
test4_1目录下文件内容为:
2Xiaoliang17male95.088.093.5
3Xiaoming19male86.598.091.0
4Xiaoguang18male88.080.094.0
test4_2目录下文件内容为:
1Xiaohong18female96.088.090.5
5Xiaohua16female97.058.588.0


--使用test4数据库
use test4;
--Begin
insert overwrite local directory '/home/test4'
select * from student limit 2;
from student
insert overwrite local directory '/home/test4_1'
select * where sex = 'male'
insert overwrite local directory '/home/test4_2'
select * where sex = 'female'
--End



目录
相关文章
|
4月前
|
SQL 存储 HIVE
Hive中的表是如何定义的?请解释表的结构和数据类型。
Hive中的表是如何定义的?请解释表的结构和数据类型。
34 0
|
4月前
|
SQL Java 数据库连接
java链接hive数据库实现增删改查操作
java链接hive数据库实现增删改查操作
158 0
|
5月前
|
SQL 消息中间件 数据处理
DataX读取Hive Orc格式表丢失数据处理记录
DataX读取Hive Orc格式表丢失数据处理记录
135 0
|
7天前
|
SQL 存储 大数据
Hive的查询、数据加载和交换、聚合、排序、优化
Hive的查询、数据加载和交换、聚合、排序、优化
26 2
|
26天前
|
SQL 数据库 HIVE
Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
【4月更文挑战第8天】Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
27 0
|
3月前
|
SQL 消息中间件 Kafka
Flink部署问题之hive表没有数据如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
4月前
|
SQL 分布式计算 关系型数据库
Sqoop数据导入到Hive表的最佳实践
Sqoop数据导入到Hive表的最佳实践
|
4月前
|
SQL 数据库 HIVE
python链接hive数据库实现增删改查操作
python链接hive数据库实现增删改查操作
147 0
|
5月前
|
SQL 存储 HIVE
❤️Hive的基本知识(二)Hive中的各种表❤️
❤️Hive的基本知识(二)Hive中的各种表❤️
33 0
|
5月前
|
SQL 存储 关系型数据库
Presto【实践 01】Presto查询性能优化(数据存储+SQL优化+无缝替换Hive表+注意事项)及9个实践问题分享
Presto【实践 01】Presto查询性能优化(数据存储+SQL优化+无缝替换Hive表+注意事项)及9个实践问题分享
125 0