在Hive中的INSERT OVERWRITE语句中,列顺序是否重要?

时间:2017-04-06 08:35:29

标签: hive

假设我使用INSERT OVERWRITE TABLE命令和分区: -

INSERT OVERWRITE TABLE target PARTITION (date_id = ${hiveconf:DateId})
SELECT a as columnA,
       b as columnB,
       c as columnC from sourcetable;

并且假设目标表中列的顺序与insert overwrite / select中指定的列顺序不同。有关系吗?因为我在理想情况下使用AS子句明确指定列名称,所以无关紧要。但是我得到了一些在目标方面被交换的数据。我强烈怀疑列可能很重要。所以只是想确认一下。

1 个答案:

答案 0 :(得分:5)

列的顺序是唯一重要的事情 源和目标之间应该完全吻合。

P.S。
我不知道任何SQL提供程序支持按列匹配目标和源之间的匹配。名。
ISO SQL支持目标表的列列表,例如:

insert into trg (col4, col1, col2)
select ... , ... , ... from ...

Hive目前不支持。