【发布时间】:2018-06-04 11:47:01
【问题描述】:
我正在尝试将此值 1520200800049 转换为 Avro。这是我的模式中字段的规范,顺便说一下,union 模式:
{
"name" : "TimestampField"
"type" : ["null",{
"type":"long",
"logicalType":"timestamp-millis"
}]
}
这是我得到的错误:
Caused by: org.apache.avro.UnresolvedUnionException: Not in union ["null",{"type":"long","logicalType":"timestamp-millis"}]: 1520200800049
at org.apache.avro.generic.GenericData.resolveUnion(GenericData.java:740)
at org.apache.avro.generic.GenericDatumWriter.resolveUnion(GenericDatumWriter.java:205)
at org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion(GenericDatumWriter.java:123)
at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:75)
at org.apache.avro.generic.GenericDatumWriter.writeField(GenericDatumWriter.java:166)
at org.apache.avro.generic.GenericDatumWriter.writeRecord(GenericDatumWriter.java:156)
at org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion(GenericDatumWriter.java:118)
at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:75)
at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:62)
at org.apache.avro.file.DataFileWriter.append(DataFileWriter.java:302)
当我将架构更改为:
{
"name" : "TimestampField"
"type" : ["null" , "long"]
}
它有效。但这不是重点。我想将其转换为timestamp 用于Hive 目的。
【问题讨论】: