Hive 数据类型:双精度和小数位数

Hive Data Type : Double Precision & Scale

我正在使用 CDH 5.3.0 和 Hive 0.12。我有一个 Hive table,列定义为双列。

我正在从 HDFS 序列文件中以小数点后 2 位精度将数据加载到这些双列中。例如,在我的 HDFS 序列文件中,我的数据类似于 - 100.23 或 345.00。我需要选择 double,因为我的数据值可以是一个很大的值,例如“3457894545.00”

我的要求是在查询 Hive table 时显示小数点后两位精度。因此,对于上面提到的示例数据,如果我查询此列,那么我需要将值视为“100.23”或“345.00”。

但是对于 Hive 0.12,我只能得到小数点后的单精度,即值被截断为“100.2”或“345.0”。

我尝试使用 "decimal" 数据类型,语法为 "decimal(3,2)",但在那种情况下,我的值​​将完全四舍五入,即“100”或“345”。

我一直在查看是否有任何选项可以将自定义精度定义为双精度数据类型,并发现自定义精度可以从 wards 上的配置单元 0.13 提供。

Is Hive 0.12 double 数据类型只显示小数点后的单精度。我需要应用任何自定义修复程序吗?请建议。

提前致谢。

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

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