jjzjj

SpecificRecord

全部标签

java - KafkaAvroDeserializer 不返回 SpecificRecord 但返回 GenericRecord

我的KafkaProducer能够使用KafkaAvroSerializer将对象序列化到我的主题。但是,KafkaConsumer.poll()返回反序列化的GenericRecord而不是我的序列化类。MyKafkaProducerKafkaProducerproducer;try(InputStreamprops=Resources.getResource("producer.props").openStream()){Propertiesproperties=newProperties();properties.load(props);properties.put(Produc

java - 如何在 Avro 中从 GenericRecord 转换为 SpecificRecord 以获得兼容的模式

AvroSpecificRecord(即生成的java类)是否与模式演变兼容?IE。如果我有Avro消息源(在我的例子中是kafka)并且我想将这些消息反序列化为特定记录,是否可以安全地进行?我看到的:在模式的末尾添加一个字段工作正常-可以反序列化ok到特定记录在中间添加一个字段不会-即破坏现有客户即使消息兼容,这也是一个问题。如果我能找到新的模式(使用例如confluent模式注册表),我可以反序列化为GenericRecord,但似乎没有办法从genericrecord映射到不同模式的specificrecord..MySpecificTypemessage=(TSpecificD

java - 为什么我的 avrokey 数据说它是一个通用记录当我明确地将数据写为 AvroKey<SpecificRecord> 时?

我正在将一个hadoop作业的avro输出提供给另一个hadoop作业。第一项工作仅运行具有以下设置的映射器。如果它有任何用处,我的avsc文件定义了一个复合对象,如下所示:[{"type":"record","name":"MySubRecord","namespace":"blah","fields":[{"name":"foobar","type":["null","string"],"default":null},{"name":"bar","type":["null","string"],"default":null},{"name":"foo","type":["null"