この生データには、野球選手の情報が含まれています。スキーマは次のとおりです。
name:chararray, team:chararray, position:bag{t:(p:chararray)}, bat:map[]
次のスクリプトを使用すると、プレーヤーと、プレーヤーがプレーしたさまざまなポジションを一覧表示できます。特定のポジションで何人のプレーヤーがプレーしたかをどうやって数えますか? EG 「指名打者」のポジションにいた選手は何人ですか?
position
1 人のプレーヤーのバッグに1 つのポジションが複数回出現することはありません。
Pig スクリプトとサンプル データの出力を以下に示します。
--pig script
players = load 'baseball' as (name:chararray, team:chararray,position:bag{t:(p:chararray)}, bat:map[]);
pos = foreach players generate name, flatten(position) as position;
groupbyposition = group pos by position;dump groupbyposition;
--dump groupbyposition (output of one position i.e Designated_hitter)
(Designated_hitter,{(Michael Young,Designated_hitter)})