如何使用INSERT-SELECT查询加载具有复杂数据类型的Hive表

时间:2013-11-06 04:34:59

标签: hadoop hive hiveql

我们有一个查询,可以直接在另一个表上使用INSERT-SELECT查询将数据加载到表中,如下所示

INSERT OVERWRITE TABLE <table1>
SELECT * FROM <table2> t2
WHERE <some-conditions>;

同样如何加载具有复杂数据类型的表?如何让SELECT查询中的几列/一些列为复杂的数据类型列做出贡献?我明白了吗?

table1的架构是

TABLE (col1 INT, col2 STRING, col3 ARRAY<STRING>)

注意:可以从文件加载到此类表格,但我只想尝试是否可以使用上述INSERT-SELECT查询方式加载。感谢您的兴趣。

1 个答案:

答案 0 :(得分:0)

Hive等效于insert .. select是以下之一:

1. from (table 2 query)
insert [overwrite] table <table1> [partition clause if partitioned table]

OR

2. create table table1 as select <table2 query>

注意#2(CTAS)不可靠。将#1与显式表创建或类似的东西结合使用会更好:

create table <table1> **like** table2