假设我在Hive中有一个名为t1的表。它由dt列进行分区,dt列是一个日期字段。在hivemetastore中,目录结构有一个名为t1表的文件夹,每个日期有一个子目录。
我的目标是将表的数据复制到amazons3中,同时维护目录结构。如果我尝试按以下方式将表内容直接写入s3文件,则输出将作为单个文件写入,并且目录结构将丢失:
INSERT OVERWRITE DIRECTORY "s3://<DESTINATION>" SELECT * FROM T1;
或者,如果我尝试使用命令将目录从hivemetastore直接复制到s3,则整个目录将复制到s3,但底层文件不再以逗号分隔。。。而是一些不可读的字符:
s3-dist-cp --src=hdfs://<directory location> --dest=s3://<destination>
有人能帮我完成吗?有什么建议或选择吗?
1条答案
按热度按时间wsewodh21#
可能的解决方案是使用相同的架构创建表,并将位置设置为所需位置,然后使用配置单元和动态分区加载数据: