在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等,可以根據具體需求選擇合適的函數進行數據聚合操作。