当前位置: 首页> 娱乐> 明星 > Hive出现BigDecimal wourld overflow supported range问题

Hive出现BigDecimal wourld overflow supported range问题

时间:2025/7/11 2:43:43来源:https://blog.csdn.net/HHoao/article/details/141652039 浏览次数:0次

Hive出现BigDecimal wourld overflow supported range问题

img问题在于BigDecimal设置的精度太小或太大了,例如2^32 - 1或者-2^32

img

hbase shell插入的基础类型数据通过bigdecimal查看数据位数可以看到数据位数变得很大

怀疑是插入了类似数据导致了这个问题

真正的bigDecimal数据正常状态下查看是会乱码的

img

这个问题也和使用的jdk版本也有关系

测试jdk11直接大于MAX_VALUE报错

if (bitsToShiftLong > Integer.MAX_VALUE) {reportOverflow();
}
private static void reportOverflow() {throw new ArithmeticException("BigInteger would overflow supported range");
}

Jdk17计算后大于MAX_MAG_LENGTH报错

if ((long)bitLength() * exponent / Integer.SIZE > MAX_MAG_LENGTH) {reportOverflow();
}

而且如果scale很大的话,就就算没有报错,计算也需要耗费很长的时间

关键字:Hive出现BigDecimal wourld overflow supported range问题

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: