Flink 一个job , 多个keyBy , 多个sink.
最近楼主在开发flink 流程的时候, 碰到了一个八哥, 一个source , 多个keyBy , 多个sink.但是总是出现ClassCastException .
函数的原型大概是这样:
DataStream source = env.addSource();
source.map(return AModel).fliter(Objects::nonNull).keyBy().sink();
source.map(return BModel).fliter(Objects::nonNull).keyBy().sink();
但是会报ClassCastException: BModel can't be cast to AModel .
大家知道这是什么bug么?
---
----
-
---
--
bug在于Objects::nonNull , 将这个换成filter(s -> s != null).keyBy().....就可以了。
这个bug真是太难发现了, 用了1天的时间,才找出这个八哥。记录一下。