PIG中GROUP和COGROUP有什么区别?

时间:2014-07-30 04:09:12

标签: hadoop apache-pig

我理解Group没有使用多个元组,因此我们在PIG中使用了COGROUP。但是,今天检查GROUP命令对我有用。我使用的是PIG-0.12.0。 我的命令和输出如下。

grunt> grpvar = GROUP C by $2, B by $2;
grunt> cogrpvar = COGROUP C by $2, B by $2;
grunt> describe grpvar;

grpvar: {group: chararray,C: {(pid: int,pname: chararray,drug: chararray,gender: chararray,tot_amt: int)},B: {(pid: int,pname: chararray,drug: chararray,gender: chararray,tot_amt: int)}}

grunt> describe cogrpvar;

cogrpvar: {group: chararray,C: {(pid: int,pname: chararray,drug: chararray,gender: chararray,tot_amt: int)},B: {(pid: int,pname: chararray,drug: chararray,gender: chararray,tot_amt: int)}}

GROUP预计会像这样工作吗? GROUP和COGROUP有什么区别?

1 个答案:

答案 0 :(得分:8)

是的,小组应该像这样工作!

根据文件(http://pig.apache.org/docs/r0.12.0/basic.html#group):

  

注意:GROUP和COGROUP运算符完全相同。两个运营商   与一个或多个关系合作。为了便于阅读,使用了GROUP   涉及一个关系和COGROUP的语句用于语句中   涉及两个或多个关系。您可以COGROUP,但不能更多   一次超过127个关系。

所以这只是为了可读性,两者之间没有区别。