2014-05-01 2 views
2

J'ai un sac dit C, qui peut revenir vide d'une opération. Je veux tester si C est vide, Et si oui, remplir un nouveau tuple dans un sac différent avec la valeur 'true'; sinon 'faux'. La difficulté que je pense est, il teste le sac C dans son ensemble, et si peupler un nouveau tuple dans un sac différent, pas C. J'ai essayé: grunt> E = FILTRE C BY pas IsEmpty (C); Et obtenirComment tester si un sac est vide dans Pig Latin?

2014-05-01 14: 12: 28065 [principal] ERREUR org.apache.pig.tools.grunt.Grunt - ERREUR 1200: Script Pig n'a pas réussi à analyser: projection scalaire non valide: C_grouped: A colonne doit être projetée à partir d'une relation pour être utilisé comme un scalaire

On dirait que Pig s'attend à ce que je fasse d'abord une jointure sur C d'abord? C'est à dire. Je n'utilise pas ce droit ..

Merci!

+0

'Faites DESCRIBE C' et voyez ce que vous obtenez. –

+1

ok j'ai résolu mon problème. L'erreur Pig donne est très confuse et non liée. Ce que je devais faire était un GROUP BY d'abord sur mon sac, puis IsEmpty fonctionne .. – MattLieber

+1

FLATTEN peut également être utilisé pour enlever les sacs vides – robthewolf

Répondre

0

Comme la réponse a déjà été publié dans les commentaires:

ce que je devais faire était GROUP BY d'abord sur mon sac, puis fonctionne EstVide

Questions connexes