go - 在使用 Go 的 Apache Beam 中的 Pcollection 中使用 Protobuf 消息导致错误
问题描述
func processPubSubMsgFn(ctx context.Context, in *pubsub.PubsubMessage) v1.someProto {
someProto := &v1.someProto{}
if err := proto.Unmarshal((in.Data), someProto); err != nil {
log.Fatalln("Failed to parse address book:", err)
}
return *someProto
}
原因:错误的返回类型导致:编码 struct v1.someProto 类型有未导出的字段:状态
尝试运行管道时,在 java 中我会为消息类型设置编码器,不知道如何在 Apache Beam 的 Go 版本中执行此操作
解决方案
从我在apache beam sdk中看到的,你应该返回*v1.someProto
而不是v1.someProto
.
推荐阅读
- android - SSLPinning 不适用于带有 OKHTTTP 的 android <= 23
- r - R Studio 在编织期间禁用弹出窗口
- xsd - 使用类型化元素使 xsd 模式可扩展
- loops - 您将如何以柏拉图式的方式迭代数据结构
- api - 打开 Charles Proxy 时无法访问网站(Windows 10)
- android - Android Studio MediaStore,低于 SDK 29 在 sd 卡中保存图像失败
- python - AttributeError:“DummySession”对象在使用 Click/Flask 加载 M2M 模式时没有属性“query”
- ssh - SSH有什么方法可以自动插入密码?
- java - Thymeleaf + Spring MVC - 使用复选框输入时 Thymeleaf 模板解析错误
- java - Kotlin java.lang.NoSuchMethodException:
()