我运行的查询是:
hadoop com.teradata.hadoop.tool.TeradataExportTool -url
jdbc:teradata://tdx/TMODE=ANSI,CHARSET=UTF8,database=db -username
xxx -password xxx -jobtype hcat -sourcetable customers -
sourcedatabase xxx -nummappers 1 -targettable customers
运行作业时,出现以下异常:
com.teradata.connector.common.exception.connectorexception:com.teradata.connector.hive.utils.hiveschemautils.lookuphivedatatypebyname(hiveschemautils)不支持日期字段数据类型。java:475)在com.teradata.connector.hcat.utils.hcatschemautils.getrecordschema(hcatschemautils。java:396)在com.teradata.connector.hcat.processor.hcatinputprocessor.inputprocessor(hcatinputprocessor)。java:89)在com.teradata.connector.common.tool.connectorjobrunner.runjob(connectorjobrunner。java:116)在com.teradata.connector.common.tool.connectorexporttool.run(connectorexporttool。java:62)在org.apache.hadoop.util.toolrunner.run(toolrunner。java:70) 在org.apache.hadoop.util.toolrunner.run(toolrunner。java:84)在com.teradata.hadoop.tool.teradataexporttool.main(teradataexporttool。java:29)我有什么办法克服这个问题吗?配置单元表的板条箱表语句是:
CREATE EXTERNAL TABLE `customers`(
`row_id` string,
`source_start_date` date,
`source_start_timestamp` timestamp,
`target_start_timestamp` timestamp,
`target_start_date` date,
`source_end_date` date,
`source_end_timestamp` timestamp,
`target_end_date` date,
`target_end_timestamp` timestamp,
`active` string,
`is_deleted` string,
`status_flag` string,
`first_name` string,
`last_name` string,
`city` string,
)
PARTITIONED BY (
`join_dt` date)
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION
'xxx'
TBLPROPERTIES (
'transient_lastDdlTime'='1461674429')
如有任何提示,我们将不胜感激。
1条答案
按热度按时间cwtwac6a1#
我没有办法让约会成功,但我找到了一个工作。我创建一个临时表,将日期列转换为字符串。e、 例如,您创建了如下表:
从该表中,可以创建temp hive表,如下所示:
在目标teradata端,可以将数据类型指定为日期:
现在可以像这样运行作业:
这个很好用。但是由于复制表的开销,性能会稍微降低。