Hive utilise IF (condition, expression, expression), donc quand je veux faire si/else si/else si/else, je dois faire
IF(a, 1, IF(b, 2, IF(c, 3, 4)))
Y at-il une meilleure façon de faire cela qui est plus lisible?
À la recherche de quelque chose de similaire à la norme
if (a) {
1
} else if (b) {
2
} else if (c) {
3
} else {
4
}
Vous pouvez utiliser la fonction Hive Conditional CASE WHEN
pour le scénario if-else. Le CASE Statement
vous offrira une meilleure lisibilité avec les mêmes fonctionnalités.
CASE
WHEN (condition1) THEN result1
WHEN (condition2) THEN result2
WHEN (condition3) THEN result3
WHEN (condition4) THEN result4
ELSE result_default
END AS attribute_name
La meilleure façon de traiter si sinon sera d'écrire UDF personnalisé pour une colonne particulière.