在Pig中进行数据聚合操作通常使用GROUP BY语句。以下是一个简单的示例:
假设有一个包含姓名和年龄的数据集,我们想要按姓名对数据进行分组,并计算每个姓名的平均年龄。
-- 加载数据集
data = LOAD 'input.txt' USING PigStorage(',') AS (name:chararray, age:int);
-- 按姓名分组并计算平均年龄
grouped_data = GROUP data BY name;
result = FOREACH grouped_data GENERATE group AS name, AVG(data.age) AS avg_age;
-- 输出结果
DUMP result;
在上面的示例中,首先加载数据集,然后使用GROUP BY语句按姓名对数据进行分组。接着使用FOREACH语句计算每个分组的平均年龄,并将结果存储在一个新的关系中。最后使用DUMP语句将结果输出。
除了AVG函数外,Pig还提供了其他聚合函数,如SUM、MIN、MAX等,可以根据具体需求选择合适的函数进行数据聚合操作。