Grokbase Groups Pig user October 2010
FAQ
I have a simple schema that contains an inner bag. What I need to
essentially do is that for each tuple in the inner bag, I need to create a
new tuple in a new outer bag. This is easier shown than explained! Consider
the following schema and data:

DESCRIBE A;
A: {id: chararray, items: {item: chararray}}

DUMP A;
(a1, {(i1), (i2), (i3)})
(a2, {(i1), (i2), (i3)})

This needs to turn into some relation, I that looks like:

DESCRIBE I;
I: {id: chararray, item: chararray}

DUMP I;
(a1, i1)
(a1, i2)
(a1, i3)
(a2, i1)
(a2, i2)
(a2, i3)

...so that I can then do a join with another relation X against the item
field from I.

Any ideas? Hope that description made sense.

Many thanks,

Josh

Search Discussions

  • Mehmet Tepedelenlioglu at Oct 8, 2010 at 5:29 pm
    I= foreach A generate group, flatten(items);

    I believe that should do it.
    On Oct 8, 2010, at 9:13 AM, Josh Devins wrote:

    I have a simple schema that contains an inner bag. What I need to
    essentially do is that for each tuple in the inner bag, I need to create a
    new tuple in a new outer bag. This is easier shown than explained! Consider
    the following schema and data:

    DESCRIBE A;
    A: {id: chararray, items: {item: chararray}}

    DUMP A;
    (a1, {(i1), (i2), (i3)})
    (a2, {(i1), (i2), (i3)})

    This needs to turn into some relation, I that looks like:

    DESCRIBE I;
    I: {id: chararray, item: chararray}

    DUMP I;
    (a1, i1)
    (a1, i2)
    (a1, i3)
    (a2, i1)
    (a2, i2)
    (a2, i3)

    ...so that I can then do a join with another relation X against the item
    field from I.

    Any ideas? Hope that description made sense.

    Many thanks,

    Josh
  • Josh Devins at Oct 8, 2010 at 9:00 pm
    Crap, of course :)

    Many thanks, that did the job.

    Cheers,

    Josh

    On 8 October 2010 19:12, Mehmet Tepedelenlioglu wrote:

    I= foreach A generate group, flatten(items);

    I believe that should do it.
    On Oct 8, 2010, at 9:13 AM, Josh Devins wrote:

    I have a simple schema that contains an inner bag. What I need to
    essentially do is that for each tuple in the inner bag, I need to create a
    new tuple in a new outer bag. This is easier shown than explained! Consider
    the following schema and data:

    DESCRIBE A;
    A: {id: chararray, items: {item: chararray}}

    DUMP A;
    (a1, {(i1), (i2), (i3)})
    (a2, {(i1), (i2), (i3)})

    This needs to turn into some relation, I that looks like:

    DESCRIBE I;
    I: {id: chararray, item: chararray}

    DUMP I;
    (a1, i1)
    (a1, i2)
    (a1, i3)
    (a2, i1)
    (a2, i2)
    (a2, i3)

    ...so that I can then do a join with another relation X against the item
    field from I.

    Any ideas? Hope that description made sense.

    Many thanks,

    Josh

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupuser @
categoriespig, hadoop
postedOct 8, '10 at 4:13p
activeOct 8, '10 at 9:00p
posts3
users2
websitepig.apache.org

People

Translate

site design / logo © 2021 Grokbase