从hive到teradata的Sqoop导出不适用于时间戳字段

时间:2016-07-12 18:28:11

标签: hadoop hive teradata sqoop

我正在尝试从hive导出一个文件,该文件有一个字段作为时间戳('2016-05-21 02:00:00')到teradata。 teradata中的数据类型为timestamp(0),可以预期类似的格式。

当我尝试使用sqoop导出它时,它会给字符串添加时间戳转换错误。 任何变通办法都会有很大帮助。

注意:

  • String位于teradata中Varchar(256)的蜂巢中。
  • 位于teradata中的String的配置单元中的
  • timestamp(0)失败。
  • 位于teradata中的Timestamp的配置单元中的
  • timestamp(0)失败。

日志:

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)

1 个答案:

答案 0 :(得分:1)

Teradata列应为“TIMESTAMP(0)WITH TIME ZONE”格式。它对我来说很好。