Как установить десятичные значения в команде стека улья - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь выполнить команду ниже стека улья

выбор стека (2, 'A', 10.1 , '2015-01-01', 'B', 20.123 , '2016-01-01');

Но это дает мне ошибку из-за несоответствий в десятичной точности, ниже сообщение об ошибке

Error: org.apache.spark.sql.AnalysisException: cannot resolve 'stack(2, 'A', 10.1BD, '2015-01-01', 'B', 20.123BD, '2016-01-01')' due to data type mismatch: Argument 2 (decimal(3,1)) != Argument 5 (decimal(5,3)); line 1 pos 7;
'Project [unresolvedalias(stack(2, A, 10.1, 2015-01-01, B, 20.123, 2016-01-01), None)]
+- OneRowRelation (state=,code=0)

1 Ответ

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

Приведение явно к double или decimal с необходимой точностью и масштабом:

hive> select stack(2,'A',cast(10.1 as double), '2015-01-01','B',cast(20.123 as double), '2016-01-01');
OK
A       10.1    2015-01-01
B       20.123  2016-01-01
Time taken: 2.818 seconds, Fetched: 2 row(s)

hive> select stack(2,'A',cast(10.1 as decimal(5,3)), '2015-01-01','B',cast(20.123 as decimal(5,3)), '2016-01-01');
OK
A       10.1    2015-01-01
B       20.123  2016-01-01
Time taken: 0.066 seconds, Fetched: 2 row(s)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...