Hive数据类型:Double Precision&规模

时间:2015-03-21 16:46:54

标签: hadoop hive double double-precision

我使用的是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双数据类型仅显示小数点后的单精度。我是否需要应用任何自定义修复程序。请建议。

提前致谢。

1 个答案:

答案 0 :(得分:4)

您应该声明为decimal(5,2)

语法为DECIMAL(precision, scale)。精度是指此数字的位数,包括点后的数字。