2015-01-13 53 views
0

以下是我的场景,我在hive仓库中有一个数据,我想将这些数据导出到名为“test”数据库的sample中的“sample”表中。如果一列是sample.test中的主键,而且hive(我们正在导出)中的数据在该键下有重复值,那么会发生什么情况,那么显然这个工作将失败,那么我该如何处理这种情况呢?如何使用sqoop将数据从Hive导出到rdbms

由于提前

+0

在这种情况下,您需要删除重复项.....或者如果您需要进一步的帮助,请粘贴架构和示例记录。 – SMA

回答

0

Beforing进行导出操作,通过主键删除重复按摩你的数据。对该主列进行截然不同的处理,然后导出到mysql。

2

如果你希望你的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来覆盖,它允许将这些行转换为插入语句。

相关问题