insert overwrite table不会覆盖原文件,而是新增一个文件

目录

一、背景

二、解决


一、背景

hive insert overwrite table结果发现不会覆盖原文件,而是新增一个文件

本来只有一个文件

 insert overwrite table之后变成2个文件了 

 之后用datax同步该文件路径下数据会翻倍😭

二、解决

不知道怎么解决,为了快速实现功能我尝试了用impala执行,结果因数据量太大,报了行太大超出默认值,可以去看我上一篇博文的解决方案。。。

无奈,用了最简单粗暴的方法。

先drop table 再create table 然后再insert overwrite table最后datax同步。

虽然好傻,但是问题解决了。。。

附带一个官方issues jira:

[HIVE-13997] Insert overwrite directory doesn't overwrite existing files - ASF JIRA

官方答复:

配置单元插入覆盖目录仅覆盖生成文件的直接路径而不是目录。

-rwxrwxrwx 3 myvm 用户 1163 2016-11-24 03:11 /mytest/warehouse/mytable/000000_0
-rwxrwxrwx 3 myvm 用户 0 2016-11-24 03:09 /mytest/warehouse/mytable/000000_1
-rwxrwxrwx 3 myvm 用户 0 2016-11-24 03:09 /mytest/warehouse/mytable/000000_2
-rwxrwxrwx 3 myvm 用户 0 2016-11-24 03:09 /mytest/warehouse/mytable/000000_3

预期的插入覆盖命令会覆盖整个目录,但它只会更新 000000_0 而不会触及路径中的其他文件。

ps:说了跟没说一样。。。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值