我正在尝试构建一个pig脚本,它接收一个教科书文件并将其分为几个章节,然后比较每个章节中的单词,只返回出现在所有章节中的单词并计算它们。这些章节很容易用第十章来分隔。
以下是我目前掌握的情况:
lines = LOAD '../../Alice.txt' AS (line:chararray);
lineswithoutspecchars = FOREACH lines GENERATE REPLACE(line,'([^a-zA-Z\\s]+)','') as line;
words = FOREACH lineswithoutspecchars GENERATE FLATTEN(TOKENIZE(line)) as word;
grouped = GROUP words BY word;
wordcount = FOREACH grouped GENERATE group, COUNT(words);
DUMP wordcount;
很抱歉,这个问题可能是太简单了,相比我通常在stackoverflow上问,我搜索了一下,但可能我没有使用正确的关键字。我是一个全新的Pig,并试图学习它为新的工作分配。
提前谢谢!
1条答案
按热度按时间yshpjwxd1#
有点长,但你会得到结果的。不过,你可以根据你的档案来减少不必要的关系。在脚本中提供适当的注解。
输入文件:
Pig脚本:
输出: