我需要使用SELECT子句的输出在hiveql中创建一个外部表。每次运行HiveQL时,都应删除并重新创建表。当我们删除外部表时,只会删除表结构,而不会删除HDFS位置中的数据文件。如何实现呢?
答案 0 :(得分:1)
选择时创建表(CTAS)具有限制。其中之一是目标表不能是外部表。
您有以下选择:
一次创建外部表,然后插入覆盖
插入覆盖表tablename1 [部分(partcol1 = val1,partcol2 = val2 ...)select_statement1 FROM from_statement;
使用托管表,则可以依次DROP TABLE
,CREATE TABLE ... as SELECT
另请参阅有关skipTrash and auto.purge property的答案。