Les blocs d'instructions if-else

Ruche prend en charge les instructions conditionnelles - https://cwiki.apache.org/Hive/languagemanual-udf.html#LanguageManualUDF-ConditionalFunctions

Cependant, je souhaite utiliser un bloc les instructions conditionnelles. Par exemple, j'ai deux tables A et B qui ont les mêmes colonnes (bien que les noms de colonnes ne sont pas identiques). Je souhaite créer une nouvelle table à partir de A et B tels que B a une plus grande priorité. Donc, si une ligne est présent dans B, je tiens à le sélectionner à partir de B, sinon sélectionnez la ligne à partir de A.
c'est à dire

SELECT 
IF (B.id<>NULL,
      (B.id as id,
       B.value1 as value),
      (A.id as id,
       a.value2 as value))
FROM A FULL OUTER JOIN B ON (A.id = B.id)

La requête ci-dessus ne fonctionne pas. Est-ce parce que la Ruche ne supporte pas de bloc d'instructions conditionnelles? Comment puis-je mettre en œuvre le au-dessus de la fonctionnalité?

InformationsquelleAutor elexhobby | 2013-05-29