web-dev-qa-db-fra.com

Quelle est la meilleure façon d'écrire if/else if/else if/else dans HIVE?

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
}
10
Popcorn

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
29
YoungHobbit

La meilleure façon de traiter si sinon sera d'écrire UDF personnalisé pour une colonne particulière.

0
ronil