我希望能夠在cron中運行一個導入Hive,並希望只需使用在Hive中,「Load data local inpath」覆蓋現有數據還是追加?
「將數據本地inpath'/ tmp/data/x'放入表X」到表中就足夠了。
隨後的命令是否會覆蓋表中已有的內容?還是會追加?
我希望能夠在cron中運行一個導入Hive,並希望只需使用在Hive中,「Load data local inpath」覆蓋現有數據還是追加?
「將數據本地inpath'/ tmp/data/x'放入表X」到表中就足夠了。
隨後的命令是否會覆蓋表中已有的內容?還是會追加?
這個網站http://wiki.apache.org/hadoop/Hive/LanguageManual是你在處理Hive時的朋友。 :)
,解決將數據加載到配置單元的頁面是http://wiki.apache.org/hadoop/Hive/LanguageManual/DML 即頁指出
如果被使用,則 目標表的內容(或 分區)重寫關鍵字將被刪除,並 替換爲 文件路徑引用的文件。否則文件路徑中涉及 的文件將被添加到 表中。請注意,如果目標表 (或分區)已經有一個文件 ,它的名稱與包含在filepath中的任何 文件名衝突 - 然後 現有文件將被新文件替換 。
對於您的情況,您沒有使用OVERWRITE
關鍵字,因此文件將被添加到表中。 (除非它們是相同的文件,在這種情況下它們將被覆蓋)
如果使用OVERWRITE關鍵字,則目標表(或分區)的內容將被刪除並由文件路徑引用的文件替換;否則文件路徑引用的文件將被添加到表中。
假設我每天創建文件,例如20130808.csv並且必須重新導入這一天的數據。那麼我所要做的就是再次導入具有相同文件名20130808.csv的同一個文件,並且更新後的版本將被添加到表中?或者我必須通過某種查詢自己刪除行? – webDEVILopers 2013-08-08 13:00:29
只是爲了更新,如果你們一次又一次地使用相同的文件加載,那將一次又一次地添加到表中,這並不是說你會得到覆蓋文件,你會使用相同的下一次加載。只是要提防這一點。 – 2017-12-13 13:43:12