首页 > 解决方案 > Impala 双精度值未正确加载

问题描述

我在 impala 中创建了一个简单的表,如下所示

   CREATE TABLE IF NOT EXISTS my_db.employee
   (name STRING, salary double );

我的插入语句如下

insert into employee (name, salary)
    VALUES ("Prasad", 158.17)

但问题是

我在 impala 中的价值观正在加载为

name,salary
prasad,158.1666666666

我不明白为什么会这样。我已经在其他数据库中尝试过,比如 hive,但是值被加载为 158.17 但在 impala 中它是 158.1666666666

你能帮我解释一下为什么会这样吗...

以及如何加载实际值...

请指导我

标签: sqlhadoophiveimpala

解决方案


这是浮点与定点运算的问题。如果您希望小数部分准确无误,请使用decimal/numeric作为列:

CREATE TABLE IF NOT EXISTS my_db.employee 
    name STRING,
    salary DECIMAL(10, 2)
);

推荐阅读