以下是我的場景,我在hive倉庫中有一個數據,我想將這些數據導出到名爲「test」數據庫的sample中的「sample」表中。如果一列是sample.test中的主鍵,而且hive(我們正在導出)中的數據在該鍵下有重複值,那麼會發生什麼情況,那麼顯然這個工作將失敗,那麼我該如何處理這種情況呢?如何使用sqoop將數據從Hive導出到rdbms
由於提前
以下是我的場景,我在hive倉庫中有一個數據,我想將這些數據導出到名爲「test」數據庫的sample中的「sample」表中。如果一列是sample.test中的主鍵,而且hive(我們正在導出)中的數據在該鍵下有重複值,那麼會發生什麼情況,那麼顯然這個工作將失敗,那麼我該如何處理這種情況呢?如何使用sqoop將數據從Hive導出到rdbms
由於提前
Beforing進行導出操作,通過主鍵刪除重複按摩你的數據。對該主列進行截然不同的處理,然後導出到mysql。
如果你希望你的MySQL表包含重複項中,只有最後一排,你可以使用以下命令:
sqoop export --connect jdbc:mysql://<*ip*>/test -table sample --username root -P --export-dir /user/hive/warehouse/sample --update-key <*primary key column*> --update-mode allowinsert
在導出,Sqoop每一行轉換成默認的INSERT語句。通過指定--update-key,每行可以轉換爲更新語句。但是,如果特定的行不存在用於更新,則該行默認被跳過。這可以通過使用--update-mode allowinsert來覆蓋,它允許將這些行轉換爲插入語句。
在這種情況下,您需要刪除重複項.....或者如果您需要進一步的幫助,請粘貼架構和示例記錄。 – SMA