在HIVE中执行INSERT INTO SELECT语句时会创建空零件文件

时间:2018-02-22 08:40:29

标签: hadoop hive bigdata

我在hive中创建了一个分区表。这是声明。

angular.module('yourModule')
    .config(['$httpProvider', function($httpProvider) {
        $httpProvider.interceptors.push(['$q', function($q) {
            return {
                request: function(config) { ... },
                response: function(response) { ... },
                ...
            }
        }]);
    }]);

我正在再创建一个表

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);

并返回零行,因为我没有列1 =“ABC”的任何值; (返回零记录不是问题)

但我担心的是,因为我在INSERT INTO TABLE my_table1(batch_date='2018-02-22') select column 1, column 2, column 3 from my_table where column 1 = "ABC"; 语句中有3列,所以它在hdfs目录中创建了3个空部分文件。我不希望在我的hdfs目录下创建这3个部分文件,我无法解决它

并且在运行insert语句之前,我确实设置了以下hive属性但没有用。

INSERT INTO SELECT

有人可以建议我一个解决方案吗?

感谢。

1 个答案:

答案 0 :(得分:0)

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