2013-12-23 2 views
1

의 SQLServer에서 테이블을 가져 오면, 나는 다음과 같은 예외가 여기에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을가

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

가 대단히 감사합니다 해결을 위해 당신은 문자열로 특정 열을 매핑 할 수 있습니다, 현재의 BigInteger를 지원하지 않습니다. 잘 돌아갔다. – Kalai

관련 문제