我正在使用Sqoop将数据从SQL服务器导入本地HDFS。我正在使用一个简单的自由格式查询来从表中拉出10行。下面是我从终端执行sqoop命令:索引超出范围:JDBC SqlServer异常
sqoop import --connect 'jdbc:sqlserver://xx.xx.xx.xx;username=xx;password=xxxxx;database=DBName' --query "SELECT top 10 OrderID from DJShopcart_OrderItems where \$CONDITIONS" --split-by "OrderID" --target-dir /work/gearpurchase
当我从我的本地计算机上执行此,我得到以下异常:
引起:com.microsoft.sqlserver.jdbc .SQLServerException:索引 2超出范围。在 com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:191) 在 com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyValidColumnIndex(SQLServerResultSet.java:543) 在 com.microsoft.sqlserver。 jdbc.SQLServerResultSet.getterGetColumn(SQLServerResultSet.java:2066) 在 com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:2099) 在 com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(的SQLServerResultSet。 java:2084) at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getInt(SQLServerResultSet.java:2327) at org.apa che.sqoop.lib.JdbcWritableBridge.readInteger(JdbcWritableBridge.java:52) 在 com.cloudera.sqoop.lib.JdbcWritableBridge.readInteger(JdbcWritableBridge.java:53) 在QueryResult.readFields(QueryResult.java:105)在 org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:244)
如果我导入2个栏,异常说索引3是超出范围。
我也检查了SQLServerResultSet类文档,以了解可能是异常的原因,但没有用。只有更多的困惑与客户端游标与服务器端光标的概念
无论我尝试我不能得到这个简单的自由格式查询从SQL Server中导入数据。
Sqoop version : 1.4.6
Hadoop : 2.7.3
Machine : Ubuntu 16.04
请帮我一把。提前致谢。