如何将未分区表的列插入Hive中的分区表?

时间:2015-06-05 13:22:44

标签: hive

表'A'在那里被分区。另一个表'B'未分区。如何将B的值插入A?是否会抛出错误?

1 个答案:

答案 0 :(得分:0)

是的,您可以从非分区表插入分区表。您将要么必须定义要插入的分区,要么让Hive动态地执行它。

例如,要动态插入分区,您可以运行类似于:

的内容
SET hive.exec.dynamic.partition.mode=nonstrict;
INSERT INTO TABLE A PARTITION (partition) SELECT col1, col2, ..., colN, partition FROM B WHERE .... ; 

有关带动态插入的Hive分区的更多信息,请访问:https://cwiki.apache.org/confluence/display/Hive/DynamicPartitions。请注意,SELECT中的最后一列是用于分区插入的内容。另外需要注意的是,您需要在两个表之间匹配列数,否则您将需要填写NULL。