当我尝试使用从SQL Server导入表时
sqoop import \
-m 1 \
--connect jdbc:sqlserver://Arwen:1433 \
--username=bods \
--password=***\
--table datamart.dbo.fct_txn
--compression-codec=snappy \
--as-avrodatafile \
--warehouse-dir=/user/tkidbsqoop似乎创建了错误的查询语法。显然,它需要一个不合格的表名。然后支架就可以工作了。如何解决这个问题?
16/06/25 07:44:55 INFO tool.CodeGenTool: Beginning code generation
16/06/25 07:44:57 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM [datamart.dbo.fct_txn] AS t WHERE 1=0
16/06/25 07:44:57 ERROR manager.SqlManager: Error executing statement: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'datamart.dbo.fct_txn'.发布于 2016-06-25 23:05:10
根据错误日志中的查询:
SELECT t.* FROM [datamart.dbo.fct_txn] AS t WHERE 1=0问题出在[datamart.dbo.fct_txn]两边的引号中,正确的语法必须是[datamart].[dbo].[fct_txn]或datamart.dbo.fct_txn。尝试更改两个字符串:
--connect 'jdbc:sqlserver://Arwen:1433;database=datamart' \
--table fct_txn如果datamart是您尝试登录的用户的默认数据库,则仅更改表部分。
https://stackoverflow.com/questions/38029722
复制相似问题