Gra*_*ley 3 google-cloud-dataflow
从Maven中拉出最新的SDK版本(0.4.150414),我们的工作现在失败了.
我们已经将它追溯到我们的一个类中使用的HashMap的反序列化,并且由ParDo转换引用.
观察:
processElement调用之前正确填充HashMapprocessElement方法中放置断点显示HashMap具有不同的对象ID(必须来自反序列化原始HashMap),但现在它是空的,即所有元素都已丢失.在最新版本的SDK中,序列化/反序列化功能有什么变化吗?
如果您需要,很高兴将我们的代码发送到反馈电子邮件.
在最新版本中进行了更改,以便在传递给ParDo.of时克隆DoFn.如果多次使用DoFn并在两次使用之间进行修改,这会导致更好的行为.
如果在DoFn传递给ParDo.of后填充HashMap字段,则会出现您描述的问题.
您可以通过在ParDo.of上设置断点并检查那里的DoFn状态来确认这一点.要解决此问题,请在调用ParDo.of之前初始化该字段.
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |