我正在尝试在ApacheBeam(在Dataflow上)将类序列化为Avro。
我有一个我要写给Avro的课程,它使用Joda DateTime属性作为逻辑类型timestamp-millis
在Beam之外,我会通过注释属性来映射它
class Event {
@AvroSchema("{\"type\": \"long\", \"logicalType\": \"timestamp-millis\"}")
DateTime dt;
// ...
}
然后调用
// MyTimestampConversion extends TimeConversions.TimestampConversion
// implementing getRecommendedSchema()
// This is fixed in Avro 1.8.3
ReflectData.get().addLogicalTypeConversion(new MyTimestampConversion());
在写入文件之前。
但是,当每个AvroIO.Write分发时,我如何将TimestampConversion类传递给每个进程/节点中的ReflectData并调用addLogicalTypeConversion()。
这就是写似乎被称为
的地方据我所知,AvroIO中的所有功能都是静态的还是私有的,不容易扩展? (这可能反映了我的java)