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;