将avro文件发布到kafka主题

vxqlmq5t  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(372)

我有一个包含avro格式数据的文件,数据需要直接发布到一个Kafka主题中。在我的代码中有没有没有没有太多数据解析的实用程序?使用Kafka1.0版本。

rsaldnfx

rsaldnfx1#

您可以从avro文件中读取数据,然后将其序列化为字节数组。

final Schema avroSchema = new Schema.Parser().parse(new File("yourAvroSchema.avsc"));            
File avroFile="yourAvroFile.avro"

// Read as GenericRecord
final GenericDatumReader<GenericRecord> genericDatumReader = new GenericDatumReader<>(avroSchema );
final DataFileReader<GenericRecord> genericRecords = new DataFileReader<>(avroFile, genericDatumReader);

// Serialization
ByteArrayOutputStream out = new ByteArrayOutputStream();
DatumWriter<GenericRecord> writer = new GenericDatumWriter<GenericRecord>(avroSchema);

Encoder binaryEncoder = EncoderFactory.get().binaryEncoder(out, null);

while (genericRecords.hasNext()) {
    writer.write(genericRecords.next(), binaryEncoder);
}
binaryEncoder.flush();
out.close();

// ....

相关问题