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