apache pig单词计数程序中组关键字的重要性

js5cn81o  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(385)

我是一个新手Pig和我已经开始与字数计画。
在下面的字数计算程序中,我看到第3行和第4行中使用了group关键字。关键字'group'在这两个地方的用法是相同的还是不同的,因为我有点困惑,因为程序第4行的组在大写时抛出了错误?

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;
zfciruhq

zfciruhq1#

两者是不同的。前者,即“组”是一个运算符,后者,即“组”是一个关键字,表示组键。
下面是这里的解释。
group操作符将具有相同组键(键字段)的元组分组在一起。如果组键有多个字段,则键字段将是元组,否则它将与组键的类型相同。组操作的结果是每个组包含一个元组的关系。此元组包含两个字段:
第一个字段名为“group”(不要将其与group运算符混淆),并且与group键的类型相同。第二个字段采用原始关系的名称,类型为bag。这两个字段的名称都是由系统生成的,如下面的示例所示。请注意,group(以及cogroup)和join操作符执行类似的功能。group创建一组嵌套的输出元组,join创建一组扁平的输出元组。

相关问题