表'A'在那里被分区。另一个表'B'未分区。如何将B的值插入A?是否会抛出错误?
答案 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。