可以说我正在对分区使用INSERT OVERWRITE TABLE命令:
INSERT OVERWRITE TABLE target PARTITION (date_id = ${hiveconf:DateId})
SELECT a as columnA,
b as columnB,
c as columnC from sourcetable;
Run Code Online (Sandbox Code Playgroud)
并且可以说目标表中列的顺序与插入覆盖/选择中指定的顺序不同。有关系吗?因为我在理想情况下使用AS子句明确指定列名,所以这无关紧要。但是我得到一些正在目标端交换的数据。我强烈怀疑列顺序可能很重要。所以只想确认一下。
列的顺序是唯一重要的事情。
源和目标之间应完全匹配。
ps
我不知道有任何SQL提供程序支持按列名在目标和源之间进行匹配。
ISO SQL支持目标表的列列表,例如:
insert into trg (col4, col1, col2)
select ... , ... , ... from ...
Run Code Online (Sandbox Code Playgroud)
Hive当前不支持此功能。
| 归档时间: |
|
| 查看次数: |
3169 次 |
| 最近记录: |