2017-10-18 71 views
0

我有没有table1分区键,我想创建一个table2,用相同的模式table1,但设置一列“datestr”作为分区键。我如何编写CREATE TABLE LIKE查询来执行此操作?蜂巢CREATE TABLE LIKE其他表集分区键

table1: 

datestr, userID, transaction, balance 




table2 (set datestr as partition key): 

datestr, userID, transaction, balance 

回答

0

CREATE TABLE LIKE DDL不支持设置分区

我相信你可以执行CTAS查询像这样

Create table table2 (userID INT, transaction STRING, balance DECIMAL) 
Partitioned by (datestr STRING) 
as 
select userID, transaction, balance, datestr 
From table1; 

当然添加相应的列类型

+0

的东西是事务是一个“数组结构”和“许多其他嵌套结构和数组的数组”巨型类型。我只是不能扩展模式...有没有一种方法来分配分区键,而不必指定类型? – daydayup

+0

我假设'datestr'是一个字符串。 Hive可以很好地处理结构和数组......你并没有对它们进行分区,但是你必须指定它们来创建任何表,分区或不分区 –

+0

另外,你可以从另一个字面上复制SHOW CREATE TABLE命令表,然后为新表添加分区,然后执行一个'INSERT INTO' –