Same thing -- a udf to convert a tuple into a bag, then flatten.
Don't rely on any order you see in bags during testing -- there is
explicitly no guarantee there, it may change on you version to version and
execution to execution.

-D

On Mon, Feb 22, 2010 at 9:45 AM, hc busy <[email protected]> wrote:

> Thanks, Dmitriy and Rekha . So I understand the flatten on bag explodes to
> multiple rows now.
>
> The BagConcat seems to work. Actually, doing a simple example using the
> group by, it would appear that the bag contains the results in the order
> that they were before entering the group by. (so, if I group after an order
> by x desc, then when I dump the table it prints the bag, but contents are
> reversed)... So, actually, for my purposes, not having results in order is
> okay.
>
> what about instead of charsplit, the data I have is this:
>
> 1,a,b,c,d
> 2,a,s,d,f
>
> and I want to explode it into
> 1,a
> 1,b
> 1,c
> 1,d
> 2,a
> 2,s
> 2,d
> 2,f
>
> (sorry, I made a mistake in the original question, the string is not a
> string but a tuple.) I think I may be able to get it into:
>
> 1, (a,b,c,d)
> 2, (a,s,d,f)
>
> but still, I need to explode it into several rows to operate on them
> separately.
>
>
>
> On Sun, Feb 21, 2010 at 8:03 PM, Rekha Joshi <[email protected]>
> wrote:
>
> > You would require a udf for this.Please check if you already have an
> > existing one in latest pig-udf.jar.
> > Or since this is a pretty simple one , you can write one yourself - take
> > the tuple, assess the type , append the strings and return it from your
> > exec() method.
> >
> > Cheers,
> > /R
> >
> >
> > On 2/19/10 11:51 PM, "hc busy" <[email protected]> wrote:
> >
> > Guys, I know this must be a common use case, but how do you explode and
> > implode in pig?
> >
> > so, I have a file like this...
> >
> > 1, asdf
> > 2, qewrty
> > 3, zcxvb
> >
> >
> > and I want to apply an explode operation to it:
> >
> > 1, a
> > 1, s
> > 1, d
> > 1, f
> > 2, q
> > 2, e
> > 2, w
> > 2, r
> > 2, t
> > 2, y
> > 3, z
> > 3, c
> > 3, x
> > 3, v
> > 3, b
> >
> > and after some work... I have this file:
> >
> > 1, aa
> > 1, ss
> > 1, dd
> > 1, ff
> > 2, qq
> > 2, ee
> > 2, ww
> > 2, rr
> > 2, tt
> > 2, yy
> > 3, zz
> > 3, cc
> > 3, xx
> > 3, vv
> > 3, bb
> >
> >
> > and I want to perform an implode:
> >
> > 1, aassddff
> > 2, qqeewwrrttyy
> > 3, zzccxxvvbb
> >
> >
> > well, obviously this is a dumb example, but I'd like to do those things.
> > Can
> > somebody help me with this? I looked in the piggy bank and didn't see
> > anything that would do this for me.
> >
> > Thanks!
> >
> >
>

Reply via email to