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