在Hive中使用子句创建EXTERNAL TABLE

时间:2018-08-23 07:10:49

标签: hive external where-clause

我想知道是否可以根据条件(我的意思是WHERE)在Hive中创建外部表?

4 个答案:

答案 0 :(得分:1)

CREATE TABLE myTable AS
SELECT a,b,c FROM selectTable;

答案 1 :(得分:0)

Hive无法使用CTAS创建外部表。

CTAS具有以下限制:

1。目标表不能是分区表。

2。目标表不能是外部表。

3。目标表不能是列表存储表。

参考: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-CreateTableAsSelect(CTAS)

或者, 您可以创建一个外部表,然后使用选择查询将其插入到表中。

答案 2 :(得分:0)

您可以通过使用where子句将select语句分隔开来创建外部表,首先创建外部表,然后使用带有where子句的select使用insert覆盖外部表。

CREATE EXTERNAL TABLE table_name
STORED AS TEXTFILE
LOCATION '/user/path/table_name';

INSERT OVERWRITE TABLE table_name
SELECT * FROM Source_Table WHERE column="something";

答案 3 :(得分:0)

您不能使用Hive中的“按选择创建表”(CTAS)创建外部表。但是,您可以先创建外部表,然后使用过滤条件将数据从任何其他表插入表中。下面是创建存储为ORC的分区外部表并将记录插入该表的示例。

COMMIT