sql—在配置单元中创建包含其他列的表

sulc1iza  于 2021-05-29  发布在  Hadoop
关注(0)|答案(3)|浏览(317)

我是新来的Hive。我想在配置单元中创建与现有表具有相同列的表,再加上一些附加列。我知道我们可以用这样的东西。

CREATE TABLE new_table_name
AS
SELECT *
FROM old_table_name

这将创建一个列与旧表名相同的表。
但如何在新的表名中指定其他列?

xpcnnkqh

xpcnnkqh1#

首先创建一个与第一个表类似的新表,然后更改这个新表并添加所需的列。

CREATE TABLE new_table LIKE old_table;
ALTER TABLE new_table ADD COLUMNS (newCol1 int,newCol2 int);

如果希望避免数据复制,请将表设置为外部
我希望它能帮助你:)

1cklez4t

1cklez4t2#

以下是您如何实现的方法:
旧表:

hive> describe departments;
OK
department_id           int                     from deserializer   
department_name         string                  from deserializer

创建表:

create table ctas as 
select department_id, department_name, 
cast(null as int) as col_null 
from departments;

显示新表的结构:

hive> describe ctas;
OK
department_id           int                                         
department_name         string                                      
col_null                int                                         
Time taken: 0.106 seconds, Fetched: 3 row(s)

新表的结果:

hive> select * from ctas;
OK
2       Fitness         NULL
3       Footwear        NULL
4       Apparel         NULL
5       Golf            NULL
6       Outdoors        NULL
7       Fan Shop        NULL
8       TESTING         NULL
8000    TESTING         NULL
9000    testing export  NULL
zbwhf8kr

zbwhf8kr3#

简单的方法是发行 ALTER TABLE 命令在上述列之后添加更多(附加)列 CREATE 声明。

相关问题