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! > >
