flink调用toRetractStream方法发生各种java.lang.ClassCastException问题解决方法

背景: 本菜鸟在造了一个extends了RichSinkFunction<ItemCountSum2>的mysqlsink class,想把Table中数据转换成指定对象的流,再sink入mysql当中,又遇到一个当时难整的bug。出现问题: 经排除,问题出现在这段代码块中解决思路: 检查代码中是否有转换问题出错,然而并没有,继续尝试缩短错误范围, 发现并不是flatMap算子的问题,而是toRetra...
摘要由CSDN通过智能技术生成

背景:

        本菜鸟在造了一个extends了RichSinkFunction<ItemCountSum2>的mysqlsink class,想把Table中数据转换成指定对象的流,再sink入mysql当中,又遇到一个当时难整的bug。

出现问题:

        经排除,问题出现在这段代码块中

 

解决思路:

        检查代码中是否有转换问题出错,然而并没有,继续尝试缩短错误范围,

        发现并不是flatMap算子的问题,而是toRetractStream方法调用已经出现问题了。但是这个语句里面并没有显式的类型转换,那么我们就可以大概知道错误出在把table结果转换成流时,数据类型和给定的class里的数据类型出现了冲突。

解决方案:

        1.可以尝试严格限制给定class的数据类型和table的类型保持一致。(=。=代码量大时有点麻烦,不建议)

        2.先把表格数据转换成Row.c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值