Pigでデータを集約操作する方法は何ですか?
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などの他の集計関数が提供されており、データの集計操作に適した関数を具体的な要件に応じて選択することができます。