-2

我有一个带有日期列的表,并且在 hive 中的该日期列上进行了分区。假设现在有 300 个部分文件,并且每天只插入一条记录,然后我的表包含 300 条记录。现在我想创建一个重复表,将所有分区文件合并为一个。我该怎么做

4

1 回答 1

0

您可以使用 hive 中提供的压缩功能

set hive.support.quoted.identifiers=none;
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;

    with partition_list as
    (
    select date, count(distinct input__file__name) cnt from table_name
    group by date having cnt > 0
    )
    insert overwrite table table_name partition (date)
    select * from table_name 
    where date in (select date from partition_list)
于 2019-10-11T13:53:11.297 回答