SQLサーバからローカルHDFSにデータをインポートするのにSqoopを使用しています。私は簡単なフリーフォームのクエリを使用してテーブルから約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ました。 com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(のSQLServerResultSetでjdbc.SQLServerResultSet.getterGetColumn(SQLServerResultSet.java:2066) でcom.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:2099) 。 java:2084) at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getInt(SQLServerResultSet.java:2327) at org.apa QueryResult.readFieldsでche.sqoop.lib.JdbcWritableBridge.readInteger(JdbcWritableBridge.java:52) でcom.cloudera.sqoop.lib.JdbcWritableBridge.readInteger(JdbcWritableBridge.java:53) (QueryResult.java:105)で私は2列をインポートする場合 org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:244)
、例外はインデックス3が範囲外であると言います。
私は例外の原因になる可能性があるものを理解するために、クラス文書もSQLServerResultSetで確認しましたが、使用しません。クライアントサイドカーソルとサーバーサイドカーソルのコンセプトだけが混乱している
私が試しても、SQLサーバーからデータをインポートするためのこの単純なフリーフォームのクエリを取得することはできません。
Sqoop version : 1.4.6
Hadoop : 2.7.3
Machine : Ubuntu 16.04
私を助けてください。前もって感謝します。