Hive之insert into 和insert overwrite

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是刪除原有數據然後在新增數據,如果有分區那麼只會刪除指定分區數據,其他分區數據不受影響

發佈了30 篇原創文章 · 獲贊 8 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章