如何将hive发现给定的十进制值对定义的十进制类型不正确并返回NULL

时间:2016-04-14 01:58:49

标签: java hive decimal

当我触发查询时在Hive shell上 选择强制转换(1234.0为十进制(7,6))它返回NULL 还有1234.0带小数(7,5),十进制(7,4)无效,Hive返回NULL。但是使用十进制(7,0),十进制(7,1),十进制(7,2),十进制(7,3)它起作用。任何人都可以告诉我Hive如何使用十进制

1 个答案:

答案 0 :(得分:1)

Decimal(magnitude,scale)

表示幅度总有效数字的小数,其中 scale 位于小数点右侧。因此Decimal(7,3)可以包含多达7位有效数字,其中3位于小数点右侧(即mmmm.sss),而Decimal(7,4)仍有7位有效数字,但有4位是小数点的右边,只留下三个整数部分(mmm.ssss)。

后一种格式无法表示数字1234.0,因为它的小数点 left 的位数太多。