在带有附加列的配置单元中创建表

KBR*_*KBR 1 sql hadoop hive bigdata

我是Hive的新手。我想用与现有表相同的列以及一些其他列在配置单元中创建表。我知道我们可以使用这样的东西。

CREATE TABLE new_table_name
AS
SELECT *
FROM old_table_name
Run Code Online (Sandbox Code Playgroud)

这将创建具有与old_table_name相同列的表。

但是,如何在new_table_name中指定其他列?

Dur*_*aju 5

这是您可以实现的方法:

旧表:

hive> describe departments;
OK
department_id           int                     from deserializer   
department_name         string                  from deserializer   
Run Code Online (Sandbox Code Playgroud)

创建表:

create table ctas as 
select department_id, department_name, 
cast(null as int) as col_null 
from departments;
Run Code Online (Sandbox Code Playgroud)

显示新表的结构:

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

新表的结果:

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
Run Code Online (Sandbox Code Playgroud)