2016-03-30 33 views
0

我在做Sqoop時遇到下面的錯誤。它試圖將我的整個記錄​​解析到單個時間戳字段中。這裏有什麼問題?Sqoop行解析錯誤

Caused by: java.sql.SQLException: Value '$d356aee0-09a3-4ddb-991e-61cae5758abd0000-00-00 00:00:002016-03-22 22:26:53$b4759fe2-aec6-11e1-8e54-00259060b612????????339-3661-6231-2d33-3038342d3431??? 
2015-09-30534-2d61-3966612d3437????016-08-17' can not be represented as java.sql.Timestamp 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919) 
    at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:1061) 
    at com.mysql.jdbc.BufferRow.getTimestampFast(BufferRow.java:576) 
    at com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:6591) 
    at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:6191) 
    at org.apache.sqoop.lib.JdbcWritableBridge.readTimestamp(JdbcWritableBridge.java:111) 
    at com.cloudera.sqoop.lib.JdbcWritableBridge.readTimestamp(JdbcWritableBridge.java:83) 
    at QueryResult.readFields(QueryResult.java:199) 
    at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:246) 
    ... 12 more 

回答

0

這是JDBC的問題,可以由物業zeroDateTimeBehavior設置爲convertToNull處理。所以你的sqoop命令看起來像這樣

sqoop import --connect jdbc:mysql://mysql-server:3306/database?zeroDateTimeBehavior=convertToNull