当前位置:   article > 正文

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

第4关:将 select 查询结果写入文件

第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;
  • 1
  • 2
  • 3

若指定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]
  • 1
  • 2

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

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

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

多文件写入
FROM from_statement
INSERT OVERWRITE  [LOCAL] DIRECTORY directory1
SELECT select_statement1
[INSERT OVERWRITE  [LOCAL] DIRECTORY directory2
SELECT select_statement2];
  • 1
  • 2
  • 3
  • 4
  • 5
编程要求

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

Snonameagesexscore(Chinese-Math-English)
001Xiaohong18female96-88-90.5
002Xiaoliang17male95-88-93.5
003Xiaoming19male86.5-98-91
004Xiaoguang18male88-80-94
005Xiaohua16female97-58.5-88
  • 查询student表中的前两条数据写入到本地文件/home/test4目录下
  • 查询student表中男生的数据写入到本地文件/home/test4_1目录下,女生的数据写入到本地文件/home/test4_2目录下
由于hive启动时间较长,测评时请耐心等待,大概需要时间:1-2分钟。
  • 1
测试说明

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

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

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

开始你的任务吧,祝你成功!


--使用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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/909739
推荐阅读
相关标签
  

闽ICP备14008679号