我是Hive的新手。我想在配置单元中创建具有与现有表相同的列以及一些其他列的表。我知道我们可以使用这样的东西。
CREATE TABLE new_table_name
AS
SELECT *
FROM old_table_name
这将创建与old_table_name具有相同列的表。
但是如何在new_table_name中指定其他列?
答案 0 :(得分:4)
以下是如何实现目标:
旧表:
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
答案 1 :(得分:1)
简单的方法是发出ALTER TABLE
命令,在上述CREATE
语句后添加更多(附加)列。
答案 2 :(得分:0)
首先创建一个像第一个一样的新表 然后改变这个新表并添加你想要的列。
CREATE TABLE new_table LIKE old_table;
ALTER TABLE new_table ADD COLUMNS (newCol1 int,newCol2 int);
如果您希望避免数据复制,请将表格设为外部
我希望它能帮到你:)。