如何为Hive分区表使用insert语句?

时间:2017-03-30 07:47:48

标签: hadoop hive

我有一个蜂巢表dynpart。

id                      int                                 
name                    char(30)                                    
city                    char(30)                                    
thisday                 string                                      

# Partition Information      
# col_name              data_type               comment                      
thisday                 string                                      

它被'今天'分区。其数据类型为STRING。 如何将单个记录插入特定分区的表中。我知道有load命令将整个文件数据加载到hive表中。我只想知道如何为分区表编写Insert语句。我尝试写下面的命令,但这是从另一个表中获取数据。

insert into droplater partition(thisday='30/03/2017') select * from dynpart;

表格:Droplater与dynpart具有相同的结构。但上面的命令是从另一个表中插入数据。我想学习的是将一个简单的插入命令写入分区,例如:insert into tabname values(1,"abcd","efgh");到表中。

1 个答案:

答案 0 :(得分:3)

这仅适用于基本类型(没有数组,结构等)

insert into tabname partition (thisday='30/03/2017') values (1,"abcd","efgh");

这适用于所有类型

insert into tabname partition (thisday='30/03/2017') select 1,"abcd","efgh";

P.S。

无论如何,按日期((thisday date)

对您的表进行分区
insert into tabname partition (thisday=date '2017-03-30') ...     

或至少使用ISO日期格式

insert into tabname partition (thisday='2017-03-30') ...