Перекодировать значения в HIVE на основе числового условия

Я пытаюсь перекодировать столбец с числовыми значениями, где 99 и 199 представляют пропущенные значения. Я хотел бы перекодировать это так, чтобы оно отсутствовало как (.), поэтому не имеет значения, когда применяется условие, сохраняя все остальные значения по мере их ввода. Например,

если тест = 99 или тест = 199, то . else = заполнить другими значениями.

Как я могу сделать это в HIVE?


person FunT    schedule 03.11.2020    source источник


Ответы (1)


Это не имеет смысла. 99 и 199 — это числа, а . — нет. Итак, я бы рекомендовал NULL:

(case when test not in (99, 199) then test end) as test_recoded

Если test действительно является строкой, вы можете использовать приведенное выше или альтернативно:

(case when test not in ('99', '199') then test else '.' end) as test_recoded
person Gordon Linoff    schedule 03.11.2020