我有一个包含以下值的数据文件:
A 1
B 2
C 3
C 3
我写了以下猪脚本。
A = load 'users.txt' as (usr: int, nod: int);
B = GROUP A BY usr;
C = FOREACH B GENERATE group,COUNT(A);
现在,我想使用输出 C 并进一步处理它。如何引用 C 中的值/列?我尝试转储数据,但它们以键值对的形式出现?我是否需要将此输出写入文件,再次加载并处理?
谢谢,TM
我有一个包含以下值的数据文件:
A 1
B 2
C 3
C 3
我写了以下猪脚本。
A = load 'users.txt' as (usr: int, nod: int);
B = GROUP A BY usr;
C = FOREACH B GENERATE group,COUNT(A);
现在,我想使用输出 C 并进一步处理它。如何引用 C 中的值/列?我尝试转储数据,但它们以键值对的形式出现?我是否需要将此输出写入文件,再次加载并处理?
谢谢,TM
以下列方式创建列时为其命名:
C = FOREACH B GENERATE group as usr,COUNT(A) as countA;
然后可以通过这些名称来引用它们,如下例所示:
D = FOREACH C GENERATE usr, countA;
如果为列命名很麻烦,例如如果您有大量列,您还可以通过零索引列号来引用列。与 Davis Broda 发布的代码等效的代码如下所示:
C = FOREACH B GENERATE group,COUNT(A);
D = FOREACH C GENERATE $0, $1;