在这个原始数据中,我们有棒球运动员的信息,架构是:
name:chararray, team:chararray, position:bag{t:(p:chararray)}, bat:map[]
使用以下脚本,我们可以列出球员和他们打过的不同位置。我们如何计算有多少球员打过一个特定的位置?EG 有多少球员处于“指定击球手”的位置?
单个位置不能多次出现在position
球员的球包中。
下面列出了示例数据的 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)})