Impala/hbase 与浮点数据的矛盾
Posted
技术标签:
【中文标题】Impala/hbase 与浮点数据的矛盾【英文标题】:Impala/hbase contradiction with float data 【发布时间】:2013-12-12 15:44:50 【问题描述】:我制作了一个 hive 外部表来指向一个 hbase 表(主要是用浮点数填充)。 cloudera 的文档告诉“Impala 自动将 FLOAT 转换为更精确的 DOUBLE 值”。但是当我查看 Hbase(这是行的真实值)和 Impala 时,我对所有行都有类似的东西:
行/列族的 Hbase 值:93.8447(插入的确切值)
对应的Impala值:93.8447036743
它看起来不像一个更精确的值。有没有办法摆脱转换?
【问题讨论】:
经过一番研究,我仍然找不到问题的解决方案......有人可以帮忙吗? 【参考方案1】:我想通了。解决这个问题的最简单方法是创建一个开头为 double 的表,这样 Impala 就不必在创建表后对其进行转换,因此不会更改数据。
【讨论】:
【参考方案2】:或者,您可以使用 ROUND() 函数来设置精度
【讨论】:
以上是关于Impala/hbase 与浮点数据的矛盾的主要内容,如果未能解决你的问题,请参考以下文章
计算机中的定点数与浮点数 浮点数用 正负位 幕数 数字部分来表示