在HIVE中创建与另一个表相同列的表?

时间:2015-11-13 19:46:02

标签: sql hadoop hive

我想从hive中另一个表的某些元数据创建表。我正在使用配置单元。

我从this问题得知,可以通过INFORMATION_SCHEMA.COLUMNS在sql中从表中检索元数据:

HIVE是否具有对表元数据的类似访问权限,以允许我使用另一个表的列创建表?基本上,我在没有所有元组的情况下复制一个表。

这是我迄今为止最好的事情:

create table <table_name>( (select <table_name> from INFORMATION_SCHEMA.COLUMNS)) row format delimited fields by '|';

3 个答案:

答案 0 :(得分:11)

您可以使用LIKE,以便新表获取结构,但不获取数据。

Hive documentation

CREATE TABLE yourtable
LIKE table2;

答案 1 :(得分:3)

您可以尝试tr语法:

CTAS

答案 2 :(得分:0)

我相信这会解决问题:

DROP TABLE IF EXISTS schema.New_Table;    
CREATE TABLE New_Table    
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\034' LINES TERMINATED BY '\012'
STORED AS TEXTFILE location '/IC/New_Table'   
AS   
select *   
from Old_Table;