代码提交到yarn上后,一直报这个错,但是数据好像没丢,或者丢的少, 没看出来。。
一开始分析的是业务逻辑中匹配的时候,会有一些类型不匹配的问题,但是全部排查了一遍,貌似没有,更何况下边这个异常里面并没有指出代码中的哪一行类型异常。。所以就怀疑是不是kafka中的数据进来的时候就有空字段。。
今天无意中翻了一眼官网,他说:
Scala Case Class(包括Scala元组):最多22个字段,不支持空字段
所以问题很明显,就是flink中的元组不支持空字段, 因为之前用scala的tuple的时候,是可以为空的。。所以一直没想到这。。
java.lang.NullPointerException
at org.apache.flink.api.scala.typeutils.CaseClassSerializer.copy(CaseClassSerializer.scala:101)
at org.apache.flink.api.scala.typeutils.CaseClassSerializer.copy(CaseClassSerializer.scala:32)
at org.apache.flink.streaming.runtime.tasks.OperatorChain$CopyingChainingOutput.pushToOperator(OperatorChain.java:577)
at org.apache.flink.streaming.runtime.tasks.OperatorChain$CopyingChainingOutput.collect(OperatorChain.java:554)
at org.apache.flink.streaming.runtime.tasks.OperatorChain$CopyingChainingOutput.collect(OperatorChain.java:534)
at org.apache.flink.streaming.api.operators.AbstractStreamOperator$CountingOutput.collect(Abstra