如何将插入语句用于 Hive 分区表?



我有一个蜂巢表。

id                      int                                 
name                    char(30)                                    
city                    char(30)                                    
thisday                 string                                      
# Partition Information      
# col_name              data_type               comment                      
thisday                 string                                      

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

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

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

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

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

这将适用于所有类型

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

附言

无论如何,按日期对表进行分区((thisday date))

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

或至少使用 ISO 日期格式

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

最新更新