2016-04-08 7 views
0

生年月日/生年月日の組み合わせごとに2倍と3倍の数を合計します。ほとんどのダブルスとトリプルを持つ選手を生み出した上位5個のbirthCity/birthStateの組み合わせを出力します。豚のスクリプト内の袋の合計

現在、私はこの

clean = FOREACH filtered_2 GENERATE id,city,state, dble + tripple AS combined; 
dump clean; 

私の疑問を持っているが、私は上記に適合しない方法ですか?それは私が(都市、州)でグループ化しなければならないことは明らかです。どのように私は

enter image description here

counter = foreach clean { 
    sum1 = SUM(combined); 
    generate id,city,state,sum1; 
}; 

でグループをすれば、私はこのような何かを考えていたけど、それは

答えて

1

グループに都市別きれいな関係を働いていない、状態、その後、バッグ内の和を得るのですかSUMを使用して、各都市、州ごとのグループ化の合計を取得します。

clean = FOREACH filtered_2 GENERATE id,city,state,(dble + tripple) AS combined; 
clean_group = GROUP clean BY (city,state); 
counter = FOREACH clean_group GENERATE FLATTEN(group) as (city,state),SUM(clean.combined) as sum1; 
+0

最後の行を説明できますか? PLZはこの特定の関数でどのようにフラット化されたのか混乱しています – dedpo

+0

グループ化は2つのフィールドで行われるので、2つのフィールドでグループ化するとタプルが発生します。タプルからフィールドを抽出するには、FLATTEN –

関連する問題