Thank you very much. We're using Pig-0.9.2. I updated to 0.11 but it took an unacceptable time to compile my big pig script. With Pig-0.9.2, it's OK. I still did not find the reason.
So, I think I need migrate the cube operation to 0.9.2 by myself. Haitao Yao [email protected] weibo: @haitao_yao Skype: haitao.yao.final 在 2013-4-3,下午1:19,Prasanth J <[email protected]> 写道: > From 0.11 release onwards Pig natively supports CUBE operator. > > Here is the documentation for CUBE operator > http://pig.apache.org/docs/r0.11.1/basic.html#cube > > For your case the query can be represented as > > cubed = CUBE input BY CUBE(group_a,group_b,group_c); > output = FOREACH cubed GENERATE FLATTEN(group) as (group_a,group_b,group_c), > FLATTEN(cube.value) as value; > > More examples can be found in documentation. > > Thanks > -- Prasanth > > On Apr 2, 2013, at 11:34 PM, Haitao Yao <[email protected]> wrote: > >> Hi, all >> I have a tuple like this: >> (group_a,group_b,group_c,value) >> >> and I want to calculate the values in a data cube way, which means I want to >> generate new tuples from the original one : >> >> (all,all,all,value) >> (group_a,all,all,value) >> (all,group_b,all,value) >> (group_a,group_b,all,value) >> (all,all,group_c,value) >> (group_a,all,group_c,value) >> (all,group_b,group_c,value) >> >> and then group by ($0, $1, $2) . >> How can I do this? I've wrote a Eval function, but it can not generate more >> tuples from one tuple. >> >> >> thanks. >> >> >> Haitao Yao >> [email protected] >> weibo: @haitao_yao >> Skype: haitao.yao.final >> >
