2

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

4

1 回答 1

2

Create Table As Select ( CTAS ) 有限制。其中之一是目标表不能是外部的。

您有以下选择:

  1. 创建一次外部表,然后 INSERT OVERWRITE

    INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) select_statement1 FROM from_statement;

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

另请参阅有关skipTrash 和 auto.purge 属性的答案。

于 2018-10-12T12:43:10.283 回答