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


任务描述

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

相关知识

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

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

单文件写入

  1. INSERT VERWRITE [LOCAL] DIRECTORY directory
  2. [ROW FORMAT row_format] [STORED AS file_format]
  3. SELECT select_statement FROM from_statements;

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

  1. row_format:
  2. DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char][MAP KEYS TERMINATED BY char] [NULL DEFINED AS char]
  • 如将shopping表中数据写入到/home/example目录下:
  1. insert overwrite local directory '/home/example'
  2. select * from shopping;

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

多文件写入

  1. FROM from_statement
  2. INSERT OVERWRITE [LOCAL] DIRECTORY directory1
  3. SELECT select_statement1
  4. [INSERT OVERWRITE [LOCAL] DIRECTORY directory2
  5. SELECT select_statement2];

编程要求

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目录下

测试说明

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

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

  1. test4目录下文件内容为:
  2. 2Xiaoliang17male95.088.093.5
  3. 1Xiaohong18female96.088.090.5
  4. test4_1目录下文件内容为:
  5. 2Xiaoliang17male95.088.093.5
  6. 3Xiaoming19male86.598.091.0
  7. 4Xiaoguang18male88.080.094.0
  8. test4_2目录下文件内容为:
  9. 1Xiaohong18female96.088.090.5
  10. 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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值