Улей и престо , Задача усечения целочисленного деления
Почему расщепление двух данных типа bigint в кусте не происходит для усечения целочисленного деления, а происходит до
1 ответ
Решение
Престо механика:
Загрузка данных из различных источников данных через
connectors
в Presto JVM. (Разъем Hive, Mysql разъем и т. Д. См. Это)Обработка (скалярные функции или агрегатные функции) данных с использованием
Java
код.Вывести результаты из JVM (или диска, если включить
spill
).
На яве 1/2=0
поэтому Престо будет таким же. В Улье думаю из-за UDF вроде overrive operator
: LanguageManual + UDF
Чтобы избежать усечения, просто нужно "Мышление в Java":
int a = 1
int b = 2
c = 1.0*a/b
В Presto SQL
-- result: 0.3333333333333333
select cast(1 as double) / 3 from table_name
см.: Миграция из улья
Это тоже можно сделать так. выберите 1.0 * 1 / 3 из table_name вместо приведения значения