Pig 示例
用例: 使用猪来查找出现次数最多的起始字母。
解决方案:
情况1: 将数据加载到名为" lines"的包中。整行粘贴到字符数组类型的元素行上。
grunt> lines = LOAD "/user/Desktop/data.txt" AS (line: chararray);
案例2: 需要对袋行中的文本进行标记化,这样每行将产生一个单词。
grunt>tokens = FOREACH lines GENERATE flatten(TOKENIZE(line)) As token: chararray;
情况3: 要保留每个单词的第一个字母,请键入以下命令。该命令使用子字符串方法获取第一个字符。
grunt>letters = FOREACH tokens GENERATE SUBSTRING(0,1) as letter : chararray;
情况4: 创建一个用于唯一字符的袋,其中分组的袋将在每次出现该字符时都包含相同的字符。
grunt>lettergrp = GROUP letters by letter;
案例5: 在每个组中计算发生次数。
grunt>countletter = FOREACH lettergrp GENERATE group , COUNT(letters);
情况6: 使用以下命令,按照计数从高到低的顺序排列输出。
grunt>OrderCnt = ORDER countletter BY $1 DESC;
情况7: 限制为1以给出结果。
grunt> result =LIMIT OrderCnt 1;
情况8: 将结果存储在HDFS中。结果保存在sonoo文件夹下的输出目录中。
grunt> STORE result into 'home/sonoo/output';