我理解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有什么区别?
答案 0 :(得分:8)
是的,小组应该像这样工作!
根据文件(http://pig.apache.org/docs/r0.12.0/basic.html#group):
注意:GROUP和COGROUP运算符完全相同。两个运营商 与一个或多个关系合作。为了便于阅读,使用了GROUP 涉及一个关系和COGROUP的语句用于语句中 涉及两个或多个关系。您可以COGROUP,但不能更多 一次超过127个关系。
所以这只是为了可读性,两者之间没有区别。