集团运营商和集团与集团

时间:2014-05-21 23:47:48

标签: hadoop apache-pig

grouphttp://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#FOREACH的以下两个示例中做了什么:

  

示例:嵌套投影

     

在此示例中,如果输入关系中的某个字段是元组,包或地图,我们可以在该字段上执行投影(使用deference运算符)。

     

X = FOREACH C GENERATE组,B.b2;

     

DUMP X;      (1,{(3)})      (4, - {(6),(9)})      (8,{(9)})

     

在此示例中,将保留多个嵌套列。

     

X = FOREACH C GENERATE组,A。(a1,a2);

     

DUMP X;      (1,{(1,2)})      (4,{(4,2),(4,3)})      (8,{(8,3),(8,4)})

使用group和使用GROUP

之间有什么区别吗?

示例:

  

示例:展平

     

在此示例中,FLATTEN运算符用于消除嵌套。

     

X = FOREACH C GENERATE组,FLATTEN(A);

     

DUMP X;      (1,1,2,3)      (4,4,2,1)      (4,4,3,3)      (8,8,3,4)      (8,8,4,3)

     

另一个FLATTEN例子。

     

X = FOR CAC GENERACH GROUP,FLATTEN(A.a3);

     

DUMP X;      (1,3)      (4,1)      (4,3)      (8,4)      (8,3)

1 个答案:

答案 0 :(得分:0)

来自http://pig.apache.org/docs/r0.11.0/basic.html#GROUP

The first field is named "group" (do not confuse this with the GROUP operator) and is the same type as the group key.

字段名称区分大小写,因此GROUP运算符不会创建字段“GROUP”。在我看来,这是猪文件中的一个小错误。