我是新来的Hive。我想在配置单元中创建与现有表具有相同列的表,再加上一些附加列。我知道我们可以用这样的东西。
CREATE TABLE new_table_name AS SELECT * FROM old_table_name
这将创建一个列与旧表名相同的表。但如何在新的表名中指定其他列?
xpcnnkqh1#
首先创建一个与第一个表类似的新表,然后更改这个新表并添加所需的列。
CREATE TABLE new_table LIKE old_table; ALTER TABLE new_table ADD COLUMNS (newCol1 int,newCol2 int);
如果希望避免数据复制,请将表设置为外部我希望它能帮助你:)
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
zbwhf8kr3#
简单的方法是发行 ALTER TABLE 命令在上述列之后添加更多(附加)列 CREATE 声明。
ALTER TABLE
CREATE
3条答案
按热度按时间xpcnnkqh1#
首先创建一个与第一个表类似的新表,然后更改这个新表并添加所需的列。
如果希望避免数据复制,请将表设置为外部
我希望它能帮助你:)
1cklez4t2#
以下是您如何实现的方法:
旧表:
创建表:
显示新表的结构:
新表的结果:
zbwhf8kr3#
简单的方法是发行
ALTER TABLE
命令在上述列之后添加更多(附加)列CREATE
声明。