私は持っている:
a b
a c
a d
そして、私は生成したいと思います:
a, {(b),(c),(d)}
を使用してこれを行うと、次のようGROUP
になります。
a, {(a,b),(a,c),(a,d)}
バッグの最初のフィールドを取り除くにはどうすればよいですか?
ありがとう。
私は持っている:
a b
a c
a d
そして、私は生成したいと思います:
a, {(b),(c),(d)}
を使用してこれを行うと、次のようGROUP
になります。
a, {(a,b),(a,c),(a,d)}
バッグの最初のフィールドを取り除くにはどうすればよいですか?
ありがとう。
でこれを行うオプションはありませんGROUP
。その列を に射影する必要がありますFOREACH
。
-- DESCRIBE A ;
-- A: {c1: chararray, c2: chararray}
-- DUMP A ;
-- a b
-- a c
-- a d
B = GROUP A BY c1 ;
C = FOREACH B GENERATE group AS c1, A.c2 AS grpd_c2 ;
これを行う必要がある場合、簡潔にするために通常は次の方法を使用します。
D = FOREACH (GROUP A BY c1)
GENERATE group AS c1, A.c2 AS grpd_c2 ;
(また、この方法は、使用しないように注意するのに役立ちますB.c2
)
キーは、元のバッグから列A.c2
のみを含むバッグを返すことです。c2
たとえば、3 つのフィールド ( c1
、c2
、c3
) がある場合は、A.(c2, c3)
代わりに使用します。