1
後比方說,我有一個表:豬:負載表,然後覆蓋該表改造
db.table
我加載表,並做一些關於它的變換,最後,嘗試存儲它
mytable = LOAD 'db.table' USING HCatLoader();
.
.
-- My transforms
.
.
STORE mytable_final INTO 'db.table' USING HCatStorer();
但代碼抱怨我正在寫入一個包含現有數據的表格。
我已經看過這個JIRA ticket,這似乎是不活動的(我已經試過在STORE命令的幾個地方使用FORCE和OVERWRITE)。
我也看過this SO帖子,但作者正在從一個位置加載並存儲在不同的位置。如果我使用該帖子中的內容,那麼轉換的結果就是沒有數據。刪除文件不是一個選項。我正在考慮臨時存儲文件,但我不知道這是否是最佳選擇。
我想要使用INSERT OVERWRITE得到您在Hive中獲得的行爲。
你爲什麼說「刪除文件不是一個選項」? –
應該澄清 - 在執行存儲之前刪除文件,強制Pig在DAG上執行(即轉換),這不是一個選項。如果我們這樣做,結果我們沒有得到任何結果。 –
我面臨類似的問題,我得到異常。 org.apache.hcatalog.common.HCatException:2003:非分區表已經包含data:tablename。當我將表格更改爲外部表格異常消失後,腳本仍然失敗,沒有任何異常堆棧跟蹤。 –