Hive 使用“从其他表中选择”创建外部表

Hive 使用“从其他表中选择”创建外部表,hive,azure-hdinsight,Hive,Azure Hdinsight,我正在使用HDInsight,需要在运行完查询后删除集群。然而,我需要我收集的数据来维持一天。我正在处理从表1创建计算列并将其插入表2中的查询。首先,我需要一个简单的测试来复制行。能否从select语句创建外部表 drop table if exists table2; create external table table2 as select * from table1 STORED AS TEXTFILE LOCATION 'wasb://{container name}@{stor

我正在使用HDInsight,需要在运行完查询后删除集群。然而,我需要我收集的数据来维持一天。我正在处理从表1创建计算列并将其插入表2中的查询。首先,我需要一个简单的测试来复制行。能否从select语句创建外部表

drop table if exists table2;

create external table table2 as
select *  
from table1
STORED AS TEXTFILE LOCATION 'wasb://{container name}@{storage name}.blob.core.windows.net/';

是的,但是你必须把它分成两个命令。首先创建外部表,然后填充它

create external table table2(attribute STRING)
STORED AS TEXTFILE
LOCATION 'table2';

INSERT OVERWRITE TABLE table2 Select * from table1;

表2的模式必须与select查询相同,在本例中,它只包含一个字符串属性。

我知道这是一个太陈旧的问题,但下面是解决方案

CREATE EXTERNAL TABLE table2
STORED AS textfile
LOCATION wasb://....
AS SELECT * FROM table1

由于配置单元中不支持使用“as select”子句创建外部表,因此首先需要使用完整的DDL命令创建外部表,然后将数据加载到表中。请检查不同的数据格式支持

create external table table_ext(col1 typ1,...)
STORED AS ORC
LOCATION 'table2'; // optional if not provided then default location is used

INSERT OVERWRITE TABLE table_ext Select * from table1;

确保表_ext具有与表1相同的DDL。

它抱怨rmr:无法将“wasb://{container name}@{storage name}.blob.core.windows.net/”移动到垃圾箱,因为它包含垃圾箱。考虑使用Skip CuffOpType,SKIPFLASH在哪里设置?SKIPFLASH?这曾经是A,但现在应该使用清除命令从HIVE 0.14修复,用插入重写来清除它们的语法是什么?插入覆盖表table2[清除]从表1中选择*;我认为这个错误是在脚本中的drop table命令上抛出的,因此如果存在table2 PURGE,它应该是
drop table我在配置单元2.1.1中遇到此错误
失败:SemanticException[错误10070]:CREATE-TABLE-AS-SELECT无法创建外部表
如果我从命令中删除关键字external,则此操作有效。外部位置仍然可以接受。