hadoop - 如果结果为 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,即使没有满足条件的记录,也要删除/刷新目录。
解决方案
这是一个在更高版本中修复的错误。https://issues.apache.org/jira/browse/HIVE-13997
作为解决方法,您可以在插入覆盖语句之前手动删除目录下的文件(不是理想的,但可以完成工作)
推荐阅读
- vb.net - 将字符串转换为 REG_BINARY
- neo4j - 来自 SQL Server 的 Neo4J ETL:从视图导入
- r - 存储来自 for 循环的多个结果
- javascript - ejs:找不到包含文件
- react-native - 如何从 react-native 中的另一个组件打开 Modal
- reactjs - 喜欢在对话框中选择表格中的一行进行编辑,但继续选择最后一行,编辑作品但仅适用于最后一行
- python-3.x - 通过循环遍历 pandas 中用户定义的字典来创建特定列
- reactjs - 我需要解决 golang 服务器上的 websockets 问题
- javascript - LightningChartJs - 为 x 轴添加折线图
- android - Viewpager2 中的原生广告