улей и престо , Целочисленная задача усечения деления - PullRequest
0 голосов
/ 31 октября 2018

Почему расщепление двух данных типа bigint в кусте не происходит для усечения целочисленного деления, а происходит в preto

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Это также может быть сделано таким образом. выберите 1.0 * 1/3 из table_name вместо приведения значения

0 голосов
/ 01 ноября 2018

Престо механика:

  1. Загрузка данных из различных источников данных через connectors в Presto JVM. (Разъем Hive, разъем Mysql и т. Д. См. this )

  2. Обработка (скалярные или агрегатные функции) данных с использованием кода Java.

  3. Вывод результатов из JVM (или диска, если он включен spill).

В Java 1/2=0 поэтому Presto будет таким же. В Hive я думаю из-за 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 

см .: Миграция из улья

...