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



目录
相关文章
|
1月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
45 4
|
1月前
|
SQL
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
37 2
|
4月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错合集之从mysql读数据写到hive报错,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
5月前
|
SQL 缓存 关系型数据库
ClickHouse(19)ClickHouse集成Hive表引擎详细解析
Hive引擎允许对HDFS Hive表执行 `SELECT` 查询。目前它支持如下输入格式: -文本:只支持简单的标量列类型,除了 `Binary` - ORC:支持简单的标量列类型,除了`char`; 只支持 `array` 这样的复杂类型 - Parquet:支持所有简单标量列类型;只支持 `array` 这样的复杂类型
215 1
|
5月前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之在进行Hive分区truncate操作时遇到权限不足,怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
76 0
|
5月前
|
SQL 资源调度 数据库连接
Hive怎么调整优化Tez引擎的查询?在Tez上优化Hive查询的指南
在Tez上优化Hive查询,包括配置参数调整、理解并行化机制以及容器管理。关键步骤包括YARN调度器配置、安全阀设置、识别性能瓶颈(如mapper/reducer任务和连接操作),理解Tez如何动态调整mapper和reducer数量。例如,`tez.grouping.max-size` 影响mapper数量,`hive.exec.reducers.bytes.per.reducer` 控制reducer数量。调整并发和容器复用参数如`hive.server2.tez.sessions.per.default.queue` 和 `tez.am.container.reuse.enabled`
430 0
|
6月前
|
SQL 存储 大数据
Hive的查询、数据加载和交换、聚合、排序、优化
Hive的查询、数据加载和交换、聚合、排序、优化
135 2
|
6月前
|
SQL DataWorks 网络安全
DataWorks操作报错合集之DataWorks连接Hive数据库时出现连接超时的问题如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
104 2
|
6月前
|
SQL 关系型数据库 MySQL
Hive 表注释乱码解决
Hive元数据在MySQL默认使用`latin1`字符集导致注释乱码。可通过修改MySQL配置文件`/etc/my.cnf`,在`[mysqld]`和末尾添加`character-set-server=utf8`等设置,重启MySQL。然后在Hive数据库中调整表字段、分区字段、索引注释的字符集。注意,这仅对新表生效。测试创建带注释的Hive表,问题解决。
92 0
|
6月前
|
SQL HIVE
Hive表删除数据不支持使用Delete From...
Hive表删除数据不支持使用Delete From...
285 0
下一篇
无影云桌面