hadoop—在配置单元中执行insert into select语句时创建空部件文件

7eumitmz  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(300)

我在配置单元中创建了一个分区表。这是声明。

Create table**my_table**( Column 1 , column 2, column 3 ) PARTITIONED BY(batch_date);

我正在再创建一个表

Create table**my_table1**( Column 1 , column 2, column 3 ) PARTITIONED BY(batch_date);

我做了这个声明

INSERT INTO TABLE my_table1(batch_date='2018-02-22')  select column 1, column 2, column 3 from my_table where column 1 = "ABC";

它返回零行,因为我没有任何列1=“”的值(返回零记录不是问题)
但我担心的是,我的文章中有3个专栏 INSERT INTO SELECT 声明它正在hdfs目录中创建3个空部件文件。我不想这3部分文件被创建在我的hdfs目录下,我无法解决它
而且在运行insert语句之前,我设置了下面的配置单元属性,但是没有用。

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

有人能给我建议一个解决办法吗?
谢谢。

qcuzuvrc

qcuzuvrc1#

请尝试设置属性hive.merge.mapredfiles=true hive.merge.size.per.task=256000000 hive.merge.smallfiles.avgsize=256000000,让我们共享您的输出。

相关问题