我使用的是CDH 5.3.0和Hive 0.12。我有一个Hive表,其列定义为double。
我正在从HDFS序列文件的小数点后以2精度加载数据到这些双列。例如,在我的HDFS序列文件中,我的数据类似于 - 100.23或345.00。我需要选择double,因为我的数据值可能是一个很大的值,如“3457894545.00”
我的要求是在查询到Hive表时在小数点后显示两个缩放精度。因此,对于上面提到的示例数据,如果我查询此列,那么我需要将值视为“100.23”或“345.00”。
但是使用Hive 0.12,我在小数点后只获得单精度,即值被截断为“100.2”或“345.0”。
我尝试使用“decimal”数据类型,语法为“decimal(3,2)”,但在这种情况下,我的值将完全舍入,即“100”或“345”。
我很惊讶地看到是否有任何选项可以为双数据类型定义自定义精度,并且发现可以从病房的hive 0.13给出自定义精度。
Hive 0.12双数据类型仅显示小数点后的单精度。我是否需要应用任何自定义修复程序。请建议。
提前致谢。
答案 0 :(得分:4)
您应该声明为decimal(5,2)
。
语法为DECIMAL(precision, scale)
。精度是指此数字的位数,包括点后的数字。