gpt4 book ai didi

apache-kafka - Kafka AVRO - 从长到日期时间的转换

转载 作者:行者123 更新时间:2023-12-04 05:23:56 60 4
gpt4 key购买 nike

当我想发送包含类型为 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;

最佳答案

我在使用 Confluent 4.0.0 和 Avro 1.8.2 时遇到了类似的问题。我有一个试图将 long 转换为 DateTime 的流处理器。我通过添加正确的转换解决了这个问题。在开始任何处理逻辑之前,我使用了 Specific Data静态实用程序类并添加正确的逻辑类型转换。

SpecificData.get().addLogicalTypeConversion(new TimeConversions.TimestampConversion());

关于apache-kafka - Kafka AVRO - 从长到日期时间的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47867866/

60 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com