apache beam(dataflow2)在使用protoc3.4时没有使用正确的ProtoCoder

时间:2017-10-19 20:03:01

标签: dataflow protoc

我正在迁移到dataflow2以及proto compiler3.4。

当我用这个叶子嵌套protos时,我没有得到proto对象的Coder.NonDeterministicException:

message NodeId {
  optional int64 value = 1;
}

抱怨java对象无法确定序列化。但它不应该使用java序列化,它应该是原型序列化。

当我添加它时,它有效:     pipeline.getCoderRegistry()。registerCoderForClass(NodeId.class,ProtoCoder.of(NodeId.class));

GeneratedMessage并未使用新的原型编译器调用GeneratedMessage。现在它被称为GeneratedMessageV3。 GeneratedMessageV3不会扩展GeneratedMessage。

因此,可能需要升级默认编码器注册表以为GeneratedMessageV3添加原型编码器

0 个答案:

没有答案