Hive uses IF(condition, expression, expression), so when I want to do if / else if / else if / else, I have to do:
IF(a, 1, IF(b, 2, IF(c, 3, 4)))
You can easily achieve this using CASE WHEN statements.
CASE
WHEN a THEN 1
WHEN b THEN 2
WHEN c THEN 3
ELSE 4
END AS attribute_name
For more information, refer official doc at https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-ConditionalFunctions
The best way to handle if else will be to write customize UDF for particular column.
You can use Hive Conditional CASE WHEN
function for if-else scenario. The CASE Statement
will provide you better readability with the same functionality.
CASE
WHEN (condition1) THEN result1
WHEN (condition2) THEN result2
WHEN (condition3) THEN result3
WHEN (condition4) THEN result4
ELSE result_default
END AS attribute_name