【发布时间】:2018-05-31 18:15:24
【问题描述】:
当我想发送包含 long 类型字段的 AVRO 消息时,出现以下错误:
Caused by: org.apache.kafka.common.errors.SerializationException: Error deserializing Avro message for id 61
Caused by: java.lang.ClassCastException: java.lang.Long cannot be cast to org.joda.time.DateTime
我使用 Confluent 3.2.0 和 Apache Spark 2.2.0。在处理 AVRO 消息并在控制台中打印它们的 Spark 作业中会引发此错误。在 AVRO 模式中,对应的字段是这样定义的:
{\"name\": \"event_time\", \"type\": { \"type\" : \"long\", \"logicalType\": \"timestamp-millis\"}}
在.avsc文件生成的Java类中,字段定义如下:
private DateTime event_time;
【问题讨论】:
标签: apache-kafka deserialization avro confluent-platform