将数据从 Hive 写入 Amazon S3,同时维护表分区目录结构

乌察夫·查特吉

假设我在 Hive 中有一个名为 T1 的表。它由列 dt 分区,这是一个日期字段。在 hive Metastore 中,目录结构有一个名为 T1 的文件夹,其中包含子目录 - 每个日期一个文件夹。

我的目标是将表的数据复制到 Amazon S3 中,同时保持目录结构。如果我尝试将表内容直接写入 S3 文件,如下所示,输出将写入单个文件并且目录结构丢失:

INSERT OVERWRITE DIRECTORY "s3://<DESTINATION>" SELECT * FROM T1;

或者,如果我尝试使用该命令将目录从 HIVE-metatore 直接复制到 s3,则整个目录将复制到 S3,但底层文件不再以逗号分隔......而是一些不可读的字符:

s3-dist-cp --src=hdfs://<directory location> --dest=s3://<destination>

谁能帮我完成这个?任何建议或替代方案?

左连接

可能的解决方案是创建具有相同架构的表并将位置设置为所需的位置,然后使用 Hive 和动态分区加载数据:

create table T2 like T1;

Alter table T2 set location = 'your destination location';

set hive.exec.dynamic.partition=true; 
set hive.exec.dynamic.partition.mode=nonstrict;

Insert overwrite table T2 partition (dt)
select * from T1
distribute by dt;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将PySpark数据帧写入分区的Hive表

来自分类Dev

使用python将csv文件写入Amazon S3

来自分类Dev

如何使用flink将增量数据写入hive

来自分类Dev

未写入数据管道S3日志(仅在使用Amazon Linux时才写入)

来自分类Dev

如何使用 Qubole Hive 查询从 Amazon S3 的 gz 文件中查询数据?

来自分类Dev

写入Amazon S3是原子的(全有还是全无)?

来自分类Dev

将熊猫数据框写入S3

来自分类Dev

将字节数据写入目录

来自分类Dev

将数据写入Excel工作表Java

来自分类Dev

将Amazon S3用作受限数据库

来自分类Dev

将数据从 Marklogic 复制到 Amazon S3

来自分类Dev

将PutObject放入目录Amazon s3 / PHP

来自分类Dev

提高Hive的写入性能

来自分类Dev

提高Hive的写入性能

来自分类Dev

获取 Spark 写入 Hive Metastore 的所有新分区

来自分类Dev

将结构写入闪存

来自分类Dev

从 Kinesis 写入数据到 S3

来自分类Dev

Amazon DynamoDB原子写入

来自分类Dev

SQLite3无法写入Amazon AWS上的数据库文件,但仅在某些情况下

来自分类Dev

将Spark数据框以CSV格式写入分区

来自分类Dev

在将 Spark 数据集写入 HDFS 期间创建的空分区

来自分类Dev

将数据写入iBeacon

来自分类Dev

将数据写入iBeacon

来自分类Dev

将数据写入mysql

来自分类Dev

使用Amazon数据管道将dynamoDB数据备份到S3

来自分类Dev

如何从 Amazon S3 查询数据

来自分类Dev

Amazon S3 本地数据湖

来自分类Dev

将Pandas数据框的全部内容写入HTML表

来自分类Dev

使用RJDBC将数据帧写入Teradata表