我需要在hiveql中创建一个外部表,其中包含SELECT子句的输出。每次运行 HiveQL 时,都应删除并重新创建表。当我们删除外部表时,只会删除表结构,而不是来自HDFS位置的数据文件。如何实现这一点?
将表创建为选择 (CTAS( 有限制。其中之一是目标表不能是外部表。
您有以下选项:
-
创建外部表一次,然后插入覆盖
插入覆盖表表名1 [分区(部分1=VAL1,部分COL2=VAL2 ...( select_statement1来自from_statement;
-
使用托管表,然后您可以
DROP TABLE
,然后CREATE TABLE ... as SELECT
另请参阅有关跳过废纸篓和自动清除属性的答案。