У меня есть запрос HiveQL, который выглядит примерно так:Datatype в заявлении СЛУЧАЯ улого
SELECT ID,
CASE WHEN col_a = 0 THEN 0
ELSE (col_b/col_a) END AS math_is_fun
FROM (/* derived query*/) AS x ;
Когда я выполняю это в улье, я недавно начал получать ошибку FAILED: Error in semantic analysis: Line X:Y ArgumentTypeMismatch 'col_a': The expression after ELSE should have the same type as those after THEN: "int" is expected but "double" is found.
Хотя я понимаю, что есть несоответствие типа данных между буквами 0
и результатом (col_a/col_b)
, я не понимаю, почему Hive задыхается от этого и, что более важно, то, что лучше всего подходит для устранения этой ошибки. Должен ли я лить буквально 0
как double
или есть лучший подход?
Это Hive 0.8.1 работает в Amazon EMR.
Использование 0.0 исправлено. Я не понимаю, почему это произошло, но это исправило это. –