我有一个代码,我试图将通用记录列表序列化为字节数组并最终将其写入文件,但得到一个 UnresolvedUnionException
下面列出的是源代码
public static byte[] encode(List<GenericRecord> records) throws IOException {
Schema schema =
new Schema.Parser()
.parse(new File("schema.avsc"));
SpecificDatumWriter<GenericRecord> datumWriter = new SpecificDatumWriter<>(schema);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byteArrayOutputStream.reset();
BinaryEncoder binaryEncoder = new EncoderFactory().binaryEncoder(byteArrayOutputStream, null);
for (GenericRecord segment : records) {
datumWriter.write(segment, binaryEncoder);
}
binaryEncoder.flush();
byte[] bytes = byteArrayOutputStream.toByteArray();
Files.write(Path.of("file.avro"), bytes);
return bytes;
}
错误发生在字段类型是记录类型的地方,代码能够成功解析原始类型字符串,整数,但在类型记录上失败