Avro中DatumWriter的用途是什么?

时间:2013-11-01 17:46:57

标签: java avro

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();

DatumWriter<User>的目的是什么?我的意思是它提供了什么?它提供了write方法,但我们使用DataFileWriter而不是使用它。有人可以解释它的设计目的吗?

1 个答案:

答案 0 :(得分:6)

DatumWriter类负责将给定数据对象转换为具有给定模式的avro记录(在您的情况下从User类中提取)。

鉴于此记录,DataFileWriter负责将其写入文件。