COALESCE с Hive SQL - программирование
Подтвердить что ты не робот

COALESCE с Hive SQL

Поскольку в Hive нет функции IFNULL, ISNULL или NVL, у меня возникла проблема с преобразованием NULL в 0. Я пробовал COALESCE(*column name*, 0), но получил следующее сообщение об ошибке:

Несоответствие типа аргумента 0: выражения после COALESCE должны быть все имеют тот же тип: ожидается "bigint", но "int" найден

Как разрешить это?

4b9b3361

Ответ 1

Как отметил Ламак в комментарии, COALESCE(column, CAST(0 AS BIGINT)) устраняет ошибку.

Ответ 3

Так как 0.11 hive имеет функцию NVL nvl(T value, T default_value)

в котором говорится   Возвращает значение по умолчанию, если значение равно null else возвращает значение

Ответ 4

Из Язык DDL и UDF улья

NVL(value, default value) 

Возвращает значение по умолчанию, если значение равно null else возвращает значение

Ответ 6

nvl(value,defaultvalue) as Columnname

установит отсутствующие значения в значение по умолчанию, указанное

Ответ 7

Если основным контактным носителем клиента является адрес электронной почты, если адрес электронной почты является нулевым, а затем номер телефона, а также, если phonenumber также является нулевым, то адрес. Он будет написан с использованием COALESCE как

coalesce(email,phonenumber,address) 

в то время как то же самое в улье может быть достигнуто путем объединения nvl как

nvl(email,nvl(phonenumber,nvl(address,'n/a')))