我使用的是CDH 5.3.0和Hive 0.12。我有一个Hive表,其中的列定义为double。
我从HDFS序列文件中以小数点后2位精度将数据加载到这些双列中。例如,在我的HDFS序列文件中,我的数据类似于- 100.23或345.00。我需要选择双精度,因为我的数据值可以是一个很大的值,比如"3457894545.00“
我的要求是在查询Hive表时显示小数点后的两个小数位精度。因此,对于上面提到的示例数据,如果我查询此列,则需要将值视为"100.23“或"345.00”。
但在Hive 0.12中,我只能得到小数点后的单个精度,即值被截断为"100.2“或"345.0”。
我尝试使用"decimal“数据类型给出语法为"decimal(3,2)”,但在这种情况下,我的值完全四舍五入,即"100“或"345”。
我查看了一下是否有任何选项可以将自定义精度定义为双精度数据类型,并发现自定义精度可以从hive 0.13开始提供。
Is配置单元0.12 double数据类型仅显示小数点后的单精度。我是否需要应用任何自定义修复程序。亲切地建议。
提前谢谢。
发布于 2015-03-25 05:25:18
您应该声明为decimal(5,2)。
语法为DECIMAL(precision, scale)。精度是指该数字的位数,包括点后的位数。
https://stackoverflow.com/questions/29185283
复制相似问题