Hi, I'm new to pig, will try to help you.
B = FOREACH A {
GENERATE FLATTEN(keywords.keyword) as keyword;
};
OR
B = FOREACH A {
GENERATE FLATTEN(keywords.keyword) as (keyword);
};
You need flatten the bag.
2013/7/24 Amit <[email protected]>
> Hello there,
> I am loading a data in form of
>
> A1: {key: chararray,keywords: {keywords_tuple: (keyword: chararray)}}
>
> I believe the Sample data would look like the following
>
> {1, {('amit'),('yahoo'),('pig')}
>
> I am trying to write a foreach where I can loop through the each keyword
> in the bag.
>
> I tried writing this but it seems to not dump the output the way I want to
> see
>
>
> B = FOREACH A {
> GENERATE keywords.keyword;
> };
>
> I would like to see
>
> ('amit')
> ('yahoo')
> ('pig')
>
> Instead it prints the entire bag at once like the one below.
>
> {('amit'),('yahoo'),('pig')}
>
>
>
> Please note I do not want to flatten the bag as what I want to process
> each keyword in the bag using a UDF later on.
>
> Appreciate any of your inputs.
>
> Regards,
> Amit
>