我正在尝试使用sqoop2将数据导入配置单元表。我正在使用 --hive-import
但它不起作用
代码:
sqoop import --connect jdbc:sqlserver://192.168.x.xxx:11xx --username user --password user --table xxxx.NOTIFICATION --hive-import
错误:
error manager.sqlmanager:执行语句时出错:com.microsoft.sqlserver.jdbc.sqlserverexception:对象名“x.notification”无效。
我做错什么了?
3条答案
按热度按时间dfty9e191#
嗨,在与@dev进行了一些研究和讨论之后,我找到了解决方案。
我使用的是sqoop2,所以我修改了我的命令并使用了下面的命令,它对我起了作用。
在执行这个命令之前,我们应该使用
create
命令。在这里,我创建了一个名为NOTIFICATION
.33qvvth12#
我假设表名是notification,您在编写--table x.notification时试图提到数据库名x
如果是这样的话,你能试试下面提到的语法吗?
zysjyyx43#
以下观察结果基于sqoop1.4.6
您正在使用(点)在您的表名中。
在内部,sqoop将触发命令
获取sql server表的元数据。
此命令被解释为
x-名称
通知-表名
为了避免这种情况,您可以使用转义字符([]对于sql server):
sqoop import --connect jdbc:sqlserver://192.168.x.:11xx --username user --password user --table [x.NOTIFICATION] --hive-import
这将产生现在
x.NOTIFICATION
将被视为表名。