Опубликовать файл AVRO в теме кафки - PullRequest
0 голосов
/ 18 мая 2018

У меня есть файл, содержащий данные в формате AVRO, которые необходимо опубликовать непосредственно в теме кафки.Существуют ли какие-либо утилиты без большого анализа данных в моем коде?Использование версии kafka 1.0.

1 Ответ

0 голосов
/ 18 мая 2018

Вы можете прочитать данные из файла 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();

// ....
...