で、私は次の形式でのフィードを持っています。グループの複数のフィールドと出力タプル
Hour Key ID Value
1 K1 001 3
1 K1 002 2
2 K1 005 4
1 K2 002 1
2 K2 003 5
2 K2 004 6
と私はValue
を合計が、タプルとしてID
を保つ、その後(Hour, Key)
によってグループにフィードをしたい:
({1, K1}, {001, 002}, 5)
({2, K1}, {005}, 4)
({1, K2}, {002}, 1)
({2, K2}, {003, 004}, 11)
私はValue
の合計を生成するのにFLATTEN
を使用する方法を知っていますが、タプルとしてID
を出力する方法はわかりません。これはこれまで私が持っているものです:
A = LOAD 'data' AS (Hour:chararray, Key:chararray, ID:chararray, Value:int);
B = GROUP A BY (Hour, Key);
C = FOREACH B GENERATE
FLATTEN(group) AS (Hour, Key),
SUM(A.Value) AS Value
;
あなたはこれを行う方法を説明しますか?感謝します!
あなたが探している最終状態/出力を提供することができます - 私はあなたが「タプルとして出力ID」によって何を意味するか理解していない –
@クリスを、最終状態は何とか私は上記の持っている作品のようになります: '(Hour、Key)'をキーとし、タプル( '{001,002}'など)のようなすべての関連する 'ID(s) 'に' Value'の合計を加えたものです。意味があるかどうか教えてください。ありがとう! – Rock