我有以下几种情况可以理解我的问题。
BatchSource<Map.Entry<Integer, HzData>> dataBatchSource = Sources.map('hzMap');
BatchStage<HzData> dataBatchStage = pipe.drawFrom(dataBatchSource ).
mapUsingContext(ContextFactories.replicatedMapContext
('hzMap'),
(map, data) -> data.getValue());
dataBatchStage.drainTo(Sinks.logger())
上面的引用可以很好地记录所有数据。如果我使用如下所示的过滤器,则会导致出现问题
dataBatchStage.filter(v -> v.getCheck() == 0).drainTo(Sinks.logger());
以上内容导致我出现类似
的错误 com.hazelcast.jet.JetException: Exception in ProcessorTasklet{filter#24}: java.lang.ClassCastException: com.nexus.api.portables.HzData cannot be cast to com.nexus.api.portables.HzData
该错误似乎是反序列化错误,但我想知道上面的记录器是如何工作的。
我也尝试使用filterUsingContext()
,但仍然得到相同的结果。
先谢谢了。期待您的宝贵反馈和解决方案。