我有:
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)
。
B = C1 组 A ;
如果您有更多字段,它将是这样的:
C = FOREACH B GENERATE group AS c1, A.(c2,....);