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

Hive 删除并覆盖配置单元中的外部表,hive,hiveql,Hive,Hiveql,我需要使用SELECT子句的输出在hiveql中创建一个外部表。每次运行HiveQL时,都应该删除并重新创建表。当我们删除外部表时,只删除表结构,而不删除来自HDFS位置的数据文件。如何实现这一点?创建表,因为Select()有限制。其中之一是目标表不能是外部的 您有以下选择: 创建一次外部表,然后插入覆盖 插入覆盖表tablename1[分区(partcol1=val1,partcol2=val2…)从\u语句中选择\u语句1 使用托管表,然后您可以删除表,然后创建表…作为选择 另请参阅关于的

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

创建表,因为Select()有限制。其中之一是目标表不能是外部的

您有以下选择:

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

    插入覆盖表tablename1[分区(partcol1=val1,partcol2=val2…)从\u语句中选择\u语句1

  • 使用托管表,然后您可以
    删除表
    ,然后
    创建表…作为选择


  • 另请参阅关于的回答。

    重新创建表后,如何加载数据?我指的是创建表为“从表2中选择*”;为什么要删除并重新创建外部表?是否删除数据并使用新数据从表中覆盖它作为“选择基础”的一部分?是。它是覆盖数据。如果只想覆盖数据,为什么要删除该表?您不能简单地将数据复制并覆盖到该外部位置吗?或者您可以使用
    将数据加载到路径中…覆盖到表中…