[Hive]Hive使用指南五 客户端导出数据

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/52924452 根据导...
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/52924452

根据导出的地方不一样,将这些方式分为三种:

  • 导出到本地文件系统中
  • 导出到HDFS中
  • 导出到Hive的另一个表中

1. 导出到本地文件系统中

INSERT OVERWRITE LOCAL DIRECTORY '/home/q/jifeng.si/data/client_behavior'
SELECT * FROM client_behavior WHERE dt = '2017-08-16' LIMIT 2000;

这条HQL的执行需要启用Mapreduce作业,运行完这条语句之后,将会在本地文件系统/home/q/jifeng.si/data/client_behavior目录下生成文件名称为000000_2的文件,这是由Reduce产生的结果,我们可以看看这个文件的内容:

ll /home/q/jifeng.si/data/client_behavior
total 536
-rw-r--r-- 1 wirelessdev wirelessdev 546233 Aug 17 19:46 000000_2

在Hive0.11.0版本之前,当用户将Hive查询结果输出到文件中时,用户不能指定列的分割符,默认为\x01:

cat /home/q/jifeng.si/data/client_behavior/000000_2 |awk -F"\x01" '{print $1}' | less
2017-08-16
2017-08-16
2017-08-16
2017-08-16
2017-08-16
2017-08-16
2017-08-16
...

在Hive0.11.0版本之后,引入了新特性,用户可以指定列和行的分隔符:

INSERT OVERWRITE LOCAL DIRECTORY '/home/q/jifeng.si/data/client_behavior'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
SELECT * FROM client_behavior WHERE dt = '2017-08-16' LIMIT 2000;

查看数据:

cat /home/q/jifeng.si/data/client_behavior/000000_2 | awk -F"\t" '{print $1}' | less
2017-08-16
2017-08-16
2017-08-16
2017-08-16
2017-08-16
...

2. 导出到HDFS中

导出到HDFS中,与导出到本地文件系统中思路一致,只是少了一个LOCAL关键字:

INSERT OVERWRITE DIRECTORY 'tmp/data_group/test/client_behavior'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
SELECT * FROM client_behavior WHERE dt = '2017-08-16' LIMIT 2000;

上面代码将会导出查询数据到HDFS的tmp/data_group/test/client_behavior目录下。

3. 导出到Hive的另一个表中

导出到Hive中的另一个表中,也是Hive的数据导入方式:

INSERT INTO client_behavior_copy
SELECT * FROM client_behavior WHERE dt = '2017-08-16' LIMIT 2000;

备注

如果想要导入数据到另一个表中,则这个表必须已经创建成功


目录
相关文章
|
11月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
158 4
|
11月前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
279 3
|
11月前
|
SQL 存储 分布式计算
Hadoop-16-Hive HiveServer2 HS2 允许客户端远程执行HiveHQL HCatalog 集群规划 实机配置运行
Hadoop-16-Hive HiveServer2 HS2 允许客户端远程执行HiveHQL HCatalog 集群规划 实机配置运行
172 3
|
11月前
|
SQL
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
126 2
|
SQL NoSQL 数据库
Flutter Hive NoSql 数据库使用指南
本文将会写一个 Hive CURD 的例子,详细介绍 Hive 这个轻量级的 Flutter 离线数据库的使用方法,包括 Hive 在 Flutter 开发中的重要性、Hive 与 SQLite 的比较等,帮助开发者快速上手 Hive 数据库。
312 6
Flutter Hive NoSql 数据库使用指南
|
11月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
275 0
|
SQL 物联网 数据处理
"颠覆传统,Hive SQL与Flink激情碰撞!解锁流批一体数据处理新纪元,让数据决策力瞬间爆表,你准备好了吗?"
【8月更文挑战第9天】数据时代,实时性和准确性至关重要。传统上,批处理与流处理各司其职,但Apache Flink打破了这一界限,尤其Flink与Hive SQL的结合,开创了流批一体的数据处理新时代。这不仅简化了数据处理流程,还极大提升了效率和灵活性。例如,通过Flink SQL,可以轻松实现流数据与批数据的融合分析,无需在两者间切换。这种融合不仅降低了技术门槛,还为企业提供了更强大的数据支持,无论是在金融、电商还是物联网领域,都将发挥巨大作用。
136 6
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错合集之从mysql读数据写到hive报错,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
SQL DataWorks 监控
DataWorks产品使用合集之同步数据到Hive时,如何使用业务字段作为分区键
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。

热门文章

最新文章