2016-07-12 43 views
1

我試圖將文件從蜂房其中有一個字段作爲時間戳('2016-05-21 02:00:00')到Teradata的出口工作。 teradata中的數據類型爲timestamp(0),它可能會有類似的格式。Sqoop從蜂巢出口的Teradata不時間戳字段

當我嘗試使用sqoop導出它,它給字符串時間戳轉換錯誤。 任何解決方法,這將大大幫助。

注:Teradata的工作

  • String在蜂巢Varchar(256)
  • String在蜂巢timestamp(0)在Teradata的失敗。
  • Timestamp在蜂巢timestamp(0)在Teradata的失敗。

日誌:

16/07/12 12:24:20 INFO mapreduce.Job: map 0% reduce 0% 
16/07/12 12:24:27 INFO mapreduce.Job: Task Id : attempt_1467306662019_8607_m_000001_0, Status : FAILED 
Error: java.lang.RuntimeException: Unparseable date: "2016-07-11 22:36:55" 
    at com.teradata.connector.common.converter.ConnectorDataTypeConverter$StringFMTTZToTimestampTZ.convert(ConnectorDataTypeConverter.java:1679) 
    at com.teradata.connector.teradata.converter.TeradataConverter.convert(TeradataConverter.java:143) 
    at com.teradata.connector.common.ConnectorOutputFormat$ConnectorFileRecordWriter.write(ConnectorOutputFormat.java:106) 
    at com.teradata.connector.common.ConnectorOutputFormat$ConnectorFileRecordWriter.write(ConnectorOutputFormat.java:65) 
    at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.write(MapTask.java:658) 
    at org.apache.hadoop.mapreduce.task.TaskInputOutputContextImpl.write(TaskInputOutputContextImpl.java:89) 
    at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.write(WrappedMapper.java:112) 
    at com.teradata.connector.common.ConnectorMMapper.map(ConnectorMMapper.java:129) 
    at com.teradata.connector.common.ConnectorMMapper.run(ConnectorMMapper.java:117) 
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787) 
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) 
    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1709) 
    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162) 
+0

您的出口命令是什麼? –

+0

sqoop出口-D mapred.job.queue.name = TestBatch -D mapred.output.compress =真-D mapred.output.compression.codec = org.apache.hadoop.io.compress.SnappyCodec --connect的jdbc:Teradata數據://xxx.yy.zz.fff/Database=dev_stg --connection-manager org.apache.sqoop.teradata.TeradataConnManager --username test --password test --table dev_stg.bag --export-dir「/ dwh/data/event/bag /「--input-fields-terminated-by'\ 001'--null-string'\ N'--null-non-string'\ N' – Austin

+0

從**配置單元的時間戳到teradata的時間戳(6)** _(默認)_。你最終是否可以用'-verbose'重新運行命令來擴展日誌? –

回答

0

Teradata的列應是 「時間戳(0)WITH TIME ZONE」 的格式。它對我來說工作得很好。