我有一张包含大量数据的表格。调用此表 A。我想创建一个外部表(例如表 B),其中包含来自表 A 的某些列的数据。我尝试使用“创建表为”(CTAS),但收到 CTAS 不适用于外部表的错误. 我怎么能做这个简单的工作?
问问题
840 次
1 回答
1
您可以通过简单地将表 A 中的所有内容插入到表 B 中来执行此操作,选择要复制的列。假设您已经有了表 A,它应该看起来像这样:
CREATE EXTERNAL TABLE table_b
(column_one type, column_three type)
LOCATION 'location_you_need_to_give';
INSERT OVERWRITE TABLE table_b
SELECT (column_one, column_three) FROM table_a;
其中 column_one 和 column_three 是 table_a 中要复制的列,而 location_you_need_to_give 是外部位置(HDFS 路径,或者如果您使用 amazon elastic map reduce,则为 S3 路径),您希望 table_b 存储数据。
于 2012-07-04T15:55:57.567 回答