我正在使用Apache avro進行數據序列化。因爲數據有一個固定的模式,我不希望模式成爲序列化數據的一部分。在以下示例中,架構是avro文件「users.avro」的一部分。如何使用apache avro生成無模式的avro文件?
User user1 = new User();
user1.setName("Alyssa");
user1.setFavoriteNumber(256);
User user2 = new User("Ben", 7, "red");
User user3 = User.newBuilder()
.setName("Charlie")
.setFavoriteColor("blue")
.setFavoriteNumber(null)
.build();
// Serialize user1 and user2 to disk
File file = new File("users.avro");
DatumWriter<User> userDatumWriter = new SpecificDatumWriter<User>(User.class);
DataFileWriter<User> dataFileWriter = new DataFileWriter<User (userDatumWriter);
dataFileWriter.create(user1.getSchema(), new File("users.avro"));
dataFileWriter.append(user1);
dataFileWriter.append(user2);
dataFileWriter.append(user3);
dataFileWriter.close();
任何人都可以請告訴我如何在沒有嵌入架構的情況下存儲avro文件嗎?
使用您在代碼中描述的方法是否可以指定編解碼器?即生成無模式Avro,例如,壓縮壓縮? – 2017-05-10 09:23:28