INSERT OVERWRITE
insert overwrite 可以对分区表和非分区表进行操作,但是行为不同:
- 对于分区表,仅删除查询生成的数据集中存在的匹配分区数据,然后替换为新数据。
如果指定了列名列表,则该列表必须与查询生成的列列表完全匹配。会使用一个 值填充表中未在列列表中显示的列。如果未指定列列表,则查询生成的列必须与要插入的表中的列完全匹配。
假设 orders
不是分区表,并且有 100 行,此时执行以下 insert overwrite 语句:
假设 users
有 3 列(id
、 和 state
)并按照 state
进行分区,并且现有数据有以下行:
id name state 1 John CD 2 Sam CD 3 Lucy SZ
此时执行以下 insert overwrite 语句:
id name state 3 Lucy SZ 4 Newman CD
目前只有 Hive 连接器支持 insert overwrite。