insert into 和overwrite的用法:
INSERT INTO TABLE tablename1 [PARTITION \
(partcol1=val1, partcol2=val2 ...)] \
select_statement1 FROM from_statement;
INSERT OVERWRITE TABLE tablename1 [PARTITION \
(partcol1=val1, partcol2=val2 ...) [IF NOT EXISTS]] \
select_statement1 FROM from_statement;
兩種方式的相同點:
1.兩個表的維度必須一樣,才能夠正常寫入
2.如果查詢出來的數據類型和插入表格對應的列數據類型不一致,將會進行轉換,但是不能保證轉換一定成功,比如如果查詢出來的數據類型爲int,插入表格對應的列類型爲string,可以通過轉換將int類型轉換爲string類型;但是如果查詢出來的數據類型爲string,插入表格對應的列類型爲int,轉換過程可能出現錯誤,因爲字母就不可以轉換爲int,轉換失敗的數據將會爲NULL。
不同點:
1.insert into是增加數據
2.insert overwrite是刪除原有數據然後在新增數據,如果有分區那麼只會刪除指定分區數據,其他分區數據不受影響