作者:zoudan的世界94129433 | 来源:互联网 | 2023-09-03 15:33
情况本地运行正常提交后报错java.lang.NullPointerExceptionatorg.json4s.Extraction$.decompose(Extraction.
情况
本地运行正常 提交后报错 java.lang.NullPointerException at org.json4s.Extraction$.decompose(Extraction.scala:256)
失败代码
implicit val formats: AnyRef with Formats = Serialization.formats(NoTypeHints)// input:DataStream[Output]
input.map(x =>{write(x)}).addSink(sink)// case class OutPut(title: String, pid: String, `type`: String, value: String) // oracle返回数据类型中 file_data字符串转json后需要提取的key
成功代码
// input:DataStream[Output]input.map(x =>{implicit val formats: AnyRef with Formats = Serialization.formats(NoTypeHints)write(x)}).addSink(sink)// case class OutPut(title: String, pid: String, `type`: String, value: String) // oracle返回数据类型中 file_data字符串转json后需要提取的key
总结
代码就是一个OutPut scala样例类的flink datastream数据流 要把scala样例类转换为json字符串(就是字段名 字段值组成的json)
但是 map里面代码是在executor节点执行 外面的实在driver执行.你放在外面导致flink的executor得不到该隐式转换变量 json4s转样例类为json字符串错误.
如有解释不妥请积极评论 我会及时修正