Flink用kafka流表 left join hive 维表,Caused by :Java.lang.NumberException: For input string:‘‘ . Overflow

文章讲述了FlinkSQL作业在处理Kafka流与Hive维表左连接时遇到的数字溢出问题,源于空字符串CHANNLE_ID。解决方法是过滤掉流表中的空值。注意FlinkSQL不支持!=操作符。
摘要由CSDN通过智能技术生成

flink作业具体的错误信息是 “Caused by: java.lang.NumberException: For input string: ‘’ . Overflow.”,但从报错信息上看还是无法直接锁定问题的。

这个错误说的是在进行左连接时,Flink SQL 作业遇到了一个数字溢出的问题。这表示在某个地方尝试将一个空字符串转换为数字时发生了溢出。

我的这个实际作业是flink sql作业用kafka流表U 去 left join hive 维表 CU,join关联字段 cast(U.CHANNLE_ID as decimal(14,0))=CU.id

这里就是可以发现,实际是kafka debezium-json数据中的CHANNLE_ID 有''空字段的情况,造成了上面的异常。

解决:流表进行过滤,比如(select * from U where CHANNLE_ID <> '')  as 表名 作为过滤后的流表即可。

注意上面的代码where CHANNLE_ID <> '' 不能写成where CHANNLE_ID != ''

因为flink sql 不支持 !=这种不等号写法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值