Не удалось получить 2 знака после запятой в запросе Hive с помощью редактора оттенков

#hive #hue

#улей #оттенок

Вопрос:

Я пишу запрос Hive в редакторе Hue в Cloudera VM. Но почему-то я не получаю данные с точностью до 2 знаков после запятой. Тот же код, если я запускаю в командной оболочке, он дает правильный результат. Я использую последнюю версию cloudera.

 select u.column1, r.column2, AVG(round(r.metric,2)) as avgr from table1 r, table2 u where u.userid= r.userid and r.metric is not null group by u.column1, r.column2;
  

введите описание изображения здесь

Ответ №1:

round() возвращает double , AVG() также возвращает double .

Лучше наносить раунд за средним:

  round(AVG(r.metric),2)
  

Если графический интерфейс по-прежнему отображает его неправильно, преобразуйте в decimal явно:

 cast(round(AVG(r.metric),2) as decimal(19,2)) 
  

Комментарии:

1. Спасибо. Это не работает с графическим интерфейсом. Поэтому я использовал другой подход, который вы предложили, и это сработало.