Hive 数据类型:双精度和比例

Posted

技术标签:

【中文标题】Hive 数据类型:双精度和比例【英文标题】:Hive Data Type : Double Precision & Scale 【发布时间】:2015-03-21 16:46:54 【问题描述】:

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

我正在从 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 开始提供。

Is Hive 0.12 双精度数据类型在小数点后仅显示单精度。我需要应用任何自定义修复。请建议。

提前致谢。

【问题讨论】:

你在发布这个问题之前没有用谷歌搜索吗? 如果是小数(5,2),那么输出会显示什么值,例如 3457894545.85 【参考方案1】:

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

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

【讨论】:

以上是关于Hive 数据类型:双精度和比例的主要内容,如果未能解决你的问题,请参考以下文章

Hive SQL之数据类型和存储格式

Hive_数据类型

Hive数据类型

Hive支持的数据类型

17.Hive数据操作

Hive之数据类型