首页 > 解决方案 > 如果结果为 0 条记录,则 INSERT OVERWRITE DIRECTORY 不会刷新/删除数据

问题描述

这是我的查询

插入覆盖目录'/myloc/output' select *from emp where eid < 123;

我在“/myloc/output”位置有一些记录,现在我再次运行以下查询..

插入覆盖目录'/myloc/output' select *from emp where eid > 345;

如果没有满足条件 eid > 345 的记录,则结果为 0 条记录。在这种情况下,beeline 不会删除旧数据(即 eid < 123)。

有没有办法告诉beeline,即使没有满足条件的记录,也要删除/刷新目录

标签: hadoophivehdfshiveqlbeeline

解决方案


这是一个在更高版本中修复的错误。https://issues.apache.org/jira/browse/HIVE-13997

作为解决方法,您可以在插入覆盖语句之前手动删除目录下的文件(不是理想的,但可以完成工作)


推荐阅读