Pig 示例

用例: 使用 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;

Case 3:要保留每个单词的第一个字母,请键入以下命令。此命令使用子串方法取第一个字符。

grunt>letters = FOREACH tokens  GENERATE SUBSTRING(0,1)   as letter : chararray;

案例 4: 为唯一字符创建一个包,其中分组包将包含该字符每次出现时相同的字符。

grunt>lettergrp = GROUP letters by letter;

Case 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';

为了指定自定义处理,Pig 提供对用户定义函数(UDF) 的支持。因此,Pig 允许我们创建自己的函数。目前,Pig UDF 可以使用以下编程语言实现::JavaPythonJythonJavaScriptR ...