删除并覆盖配置单元中的外部表



我需要在hiveql中创建一个外部表,其中包含SELECT子句的输出。每次运行 HiveQL 时,都应删除并重新创建表。当我们删除外部表时,只会删除表结构,而不是来自HDFS位置的数据文件。如何实现这一点?

将表创建为选择 (CTAS( 有限制。其中之一是目标表不能是外部表。

您有以下选项:

  1. 创建外部表一次,然后插入覆盖

    插入覆盖表表名1 [分区(部分1=VAL1,部分COL2=VAL2 ...( select_statement1来自from_statement;

  2. 使用托管表,然后您可以DROP TABLE,然后CREATE TABLE ... as SELECT

另请参阅有关跳过废纸篓和自动清除属性的答案。

最新更新