0

この生データには、野球選手の情報が含まれています。スキーマは次のとおりです。

name:chararray, team:chararray, position:bag{t:(p:chararray)}, bat:map[]

次のスクリプトを使用すると、プレーヤーと、プレーヤーがプレーしたさまざまなポジションを一覧表示できます。特定のポジションで何人のプレーヤーがプレーしたかをどうやって数えますか? EG 「指名打者」のポジションにいた選手は何人ですか?

position1 人のプレーヤーのバッグに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)})
4

2 に答える 2