2013-12-23 36 views
1

雖然從SQLServer的導入表來攆,我對着下面的異常與Bigint數據類型Sqoop導入錯誤

/tmp/sqoop-hduser/compile/a6db7754847c4d49c9164758fcc079d7/ReceivedData.java:513:  error: incompatible types 
this.IDReceivedData = Long.valueOf(__dataIn.readLong()); 
required: Long 
found: Double          
/tmp/sqoop-hduser/compile/a6db7754847c4d49c9164758fcc079d7/ReceivedData.java:1007: error: incompatible types 
    this.IDReceivedData = Long.valueOf(__cur_str); 
            ^
required: Long 
found: Double 
Note: /tmp/sqoop-hduser/compile/a6db7754847c4d49c9164758fcc079d7/ReceivedData.java uses or overrides a deprecated API. 
Note: Recompile with -Xlint:deprecation for details. 
2 errors 

這裏是用來導入表

具體列的數據類型的命令(IDReceivedData)在數據庫中是BigInt。這裏可能是什麼問題?我必須更改數據庫中列的數據類型嗎?或使用sqoop import命令進行的任何其他更改。

sqoop import --connect "jdbc:sqlserver://<ip>:1433;database=temp;user=sa;password=pass" --table ReceivedData --hive-table temp.ReceivedData 

任何幫助,將不勝感激。

感謝, 卡萊

回答

3

Sqoop不支持的BigInteger目前,對於解決辦法則可以在特定的列映射爲字符串

--map-column-java IDReceivedData=String 
+0

非常感謝你。它運作良好。 – Kalai