FAQ-写入kudu的数据类型和kudu表字段的定义类型不一致
更新时间: 2024-03-11 02:42:45
阅读 1003
问题描述
问题描述/异常栈
java.lang.IllegalArgumentException: id isn't [Type: decimal], it's int64
解决方案
1、源表使用和kudu匹配的字段类型;
2、关系型数据库通过自定义表达式使用cast函数进行类型转换。
3、当报错信息是isn't [Type: decimal]。mysql的bigint unsigned会被Spark转成Decimal(20, 0),可以使用自定义表达式进行类型转换。cast(id as signed)。
问题原因
此类报错是因为来源字段和kudu的字段类型不匹配导致,可以检查来源表字段类型和kudu的字段类型是否一致,如果使用了函数,也要检查函数的返回值的类型,通过cast函数进行类型转换。
作者:常惠渊
文档反馈
以上内容对您是否有帮助?