如何在原始日插入表中作为Hive中的分区?

时间:2017-10-19 03:25:51

标签: hadoop hive

create  table h5_qti_desc
( h5id string,
  query string,
  title string,
  item string,
  query_ids string,
  title_ids string,
  item_ids string,
  label bigint
)PARTITIONED BY (day string)  LIFECYCLE 160;

insert overwrite into h5_qti_desc
select * from aaa
;

我创建了一个名为h5_qti_desc的表,我想从另一个aaa表中插入,该表具有day字段,aaa中没有分区。 表aaa有几天,如'20171010','20171015'...... 我怎样才能将h5_qti_desc作为分区插入一次,aaa中的天数在h5_qti_desc的分区中作为日期。

1 个答案:

答案 0 :(得分:2)

您可以使用Hive动态分区功能插入数据。动态分区插入(或多分区插入)旨在通过动态确定在扫描输入表时应创建和填充哪些分区来解决此问题。

下面是使用一个insert语句将数据加载到所有分区的示例:

hive>set hive.exec.dynamic.partition.mode=nonstrict;

hive>INSERT OVERWRITE TABLE h5_qti_desc PARTITION(day)
             SELECT * FROM aaa
             DISTRIBUTE day;