2017-02-14 22 views
1

У нас есть таблица Impala с ~ 1 миллиардом строк и столбец значений типа Double. Когда мы запускаем один и тот же «select {dimensions), sum (value) из группы table по {dimension} 'запросу несколько раз подряд в одной таблице, мы получаем несколько разные суммы каждый раз. Это также происходит, когда мы суммируем округленные значения. Каковы могут быть причины этой изменчивости? Есть ли способы обойти это?Изменение числовых значений в результатах запроса Impala

ответ

2

Поскольку распределение запроса Impala распределено, порядок, в котором происходят некоторые вычисления, может изменяться в зависимости от изменчивости сети или других процессов, и поскольку арифметика с плавающей запятой не является ассоциативной [1], это может привести к поведению вас видеть. Именно поэтому существует DECIMAL datatype.

+0

Это работало на тестовом наборе данных. Каков наилучший способ изменить схему для переключения на DECIMAL из DOUBLE в наши существующие таблицы? – Vishakh