我是猪的初学者,我开始使用单词计数程序。
在下面的字数统计程序中,我看到第3和第4行使用了group关键字。关键字“组”的使用是否在两个地方相同或不同,因为我有点困惑,因为程序第4行中的组在Caps中给出时会抛出错误?
lines = LOAD '/user/root/pig/pig_demo.txt' AS (line:chararray);
words = FOREACH lines GENERATE FLATTEN(TOKENIZE(line)) as word;
grouped = GROUP words BY word;
wordcount = FOREACH grouped GENERATE group, COUNT(words);
DUMP wordcount;
答案 0 :(得分:0)
它们都是不同的。前者即“GROUP”是一个运算符,后者即“group”是一个引用GROUP Key的关键字。
以下是here的解释。
GROUP运算符将具有相同组键(键字段)的元组组合在一起。如果组键具有多个字段,则键字段将是元组,否则它将与组键的类型相同。 GROUP操作的结果是包含每组一个元组的关系。这个元组包含两个字段:
第一个字段名为“group”(不要将其与GROUP运算符混淆) ,并且与组密钥的类型相同。 第二个字段采用原始关系的名称,并且是bag类型。 这两个字段的名称由系统生成,如下例所示。 请注意,GROUP(以及COGROUP)和JOIN运算符执行类似的功能。 GROUP创建一组嵌套的输出元组,而JOIN创建一组平面的输出元组。