hive的动态分区无法写入最终文件

hwazgwia  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(301)

我正在尝试将数据从一个有1列分区的表加载到一个有2列分区的新表中,新的分区列是第一个表中的常规列。
例如,create table语句(为便于理解而简化和更改):

CREATE EXTERNAL TABLE `house`(                                     
   `color` string,                                     
   `size` string,                                    
   `owner` string)                                     
PARTITIONED BY (                                   
   `dt` date)

CREATE EXTERNAL TABLE `house_new`(                                   
   `size` string,                                    
   `owner` string)                                     
PARTITIONED BY (                                   
   `dt` date, `color` string)

我有一个简单的insert查询,如下所示:

INSERT OVERWRITE TABLE `house_new` PARTITION (`dt`='2018-06-10’, `color`)
SELECT
   `size`,                                      
   `owner`,                                     
   `color`
FROM house
WHERE `dt`='2018-06-10';

所以它一直在运行,并表示作业在终端和tez ui中都成功完成了。即使在整个过程中,我也可以看到文件实际上被填充在s3上的tmp/staging文件夹中,其中包含所有正确的分区。但是,当它最终完成时,实际上没有文件被写入,所有临时文件都被删除。
对分区进行硬编码(静态分区)是可行的,从一个1分区列表到另一个1分区列表的动态分区也是可行的。从一个1分区的列表出发,尝试从第一个表派生第二个分区是行不通的。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题