Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Pig, mail # user - why the foreach nested form can't work?


Copy link to this message
-
Re: why the foreach nested form can't work?
Jacob Perkins 2011-07-19, 13:12
I think it's because 'A.score' is a bag but Pig needs a reference to a
field in the tuples. This worked for me:

A = LOAD 'foo.tsv' AS (name:chararray, no:int, score: int);
B = GROUP A BY no;
C = FOREACH B {
      D = FILTER A BY score > 80;
      GENERATE FLATTEN(D.(name, score));
    };
DUMP C;

on the following data:

$: cat foo.tsv
henrietta 1 25
sally 1 82
fred 3 120
elsie 4 45

yields:

(sally,82)
(fred,120)

Does that work for you?

--jacob
@thedatachef

On Tue, 2011-07-19 at 15:00 +0200, 勇胡 wrote:
> A = LOAD '/home/test/student.txt' AS (name:chararray, no:int, score:
> int);
> B = GROUP A BY no;
> C =  FOREACH B {
>     D = FILTER A BY A.score > 80;
>     GENERATE D.name, D.score;}
> DUMP C;