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 ...