问题情况:
分区表加工代码中,执行结果为空,但是生成了hdfs分区文件。
原因描述:
insert overwrite 语句指定了partition值,执行器会先创建分区,最后创建空白数据文件或只有表结构schema的文件。
解决方案:
使用动态分区,不在insert overwrite 指定partition值,将partition值作为select 字段之一。
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
insert overwrite table xxx partition(end_dt)
select
...
'xxx_dt' as end_dt
from tb_name
;