我正在尝试将数据附加到配置单元中现有的表。首先使用以下命令将表从 MS-SQL Server 导入配置单元。
Sqoop 命令:
sqoop import --connect "jdbc:sqlserver://XXX.XX.XX.XX;databaseName=mydatabase" --table "my_table" --where "Batch_Id > 100" --username myuser --password mypassword --hive-import
现在我想将数据附加到配置单元中“Batch_Id < 100”的同一个现有表 我正在使用以下命令:
sqoop import --connect "jdbc:sqlserver://XXX.XX.XX.XX;databaseName=mydatabase" --table "my_table" --where "Batch_Id < 100" --username myuser --password mypassword --append --hive-table my_table
然而,此命令成功运行也更新了 HDFS 数据,但是当您连接到 hive shell 并查询表时,附加的记录不可见。 Sqoop 更新了 hdfs "/user/hduser/my_table" 上的数据,但是 "/user/hive/warehouse/batch_dim" 上的数据没有更新。
如何解决这个问题。
问候, 巴格旺博比
最佳答案
尝试使用
sqoop import --connect "jdbc:sqlserver://XXX.XX.XX.XX;databaseName=mydatabase"
--table "my_table" --where "Batch_Id < 100"
--username myuser --password mypassword
--hive-import --hive-table my_table
当您使用 --hive-import
时,请勿使用 --append
参数。
关于hadoop - 使用 Sqoop 将数据附加到 hive 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20995761/