Impala 查询结果中的数值变化

Posted

技术标签:

【中文标题】Impala 查询结果中的数值变化【英文标题】:Numeric values changing in Impala query results 【发布时间】:2017-02-14 20:48:21 【问题描述】:

我们有一个大约 10 亿行的 Impala 表和一个 Double 类型的值列。当我们在同一张表上连续多次运行相同的“select dimensions, sum(value) from table group by dimensions”查询时,每次得到的总和都略有不同。当我们对四舍五入的值求和时也会发生这种情况。这种可变性的原因可能是什么?有没有办法解决这个问题?

【问题讨论】:

【参考方案1】:

由于 Impala 查询的执行是分布式的,因此某些计算发生的顺序可能会因网络可变性或其他过程而有所不同,并且因为浮点运算不是关联的 [1],这可能会导致行为你看到了。这正是DECIMAL datatype 存在的原因。

【讨论】:

这适用于测试数据集。在我们现有的表中更改架构以从 DOUBLE 切换到 DECIMAL 的最佳方法是什么?

以上是关于Impala 查询结果中的数值变化的主要内容,如果未能解决你的问题,请参考以下文章

Impala Shell

Impala 查询无法使用 NullPointerException 检索结果

在 Pyspark 中返回错误结果的 Impala 查询

确保 Impala 查询实现

Impala在处理结果集较大的查询的优势

Impala中的invalidate metadata 和refrsh