准备数据:假设我们有一个文件,其中包含多行文本,我们要计算每个字母出现的频率。
编写Pig脚本:
--加载数据
input_data = LOAD 'input_file.txt' USING PigStorage('\n') AS (line:chararray);
--将每行文本拆分成单个字符
split_data = FOREACH input_data GENERATE FLATTEN(TOKENIZE(line)) AS character;
--过滤掉无效字符
filtered_data = FILTER split_data BY character MATCHES '\\w';
--将每个字符出现的次数累加
freq_data = FOREACH (GROUP filtered_data BY character) GENERATE group AS character, COUNT(filtered_data) AS frequency;
--按频率从高到低排序
sorted_data = ORDER freq_data BY frequency DESC;
--输出结果
STORE sorted_data INTO 'output_file' USING PigStorage(',');
pig -x local count_char.pig
这将在本地模式下运行Pig,并将结果保存在output_file中。
下一篇:ApachePigSum计算