如何参考猪输出中的列

时间:2013-11-07 19:53:47

标签: hadoop apache-pig

我有一个包含以下值的数据文件:

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中的值/列?我试过DUMPing数据,但它们是作为键值对出现的?我是否需要将此输出写入文件,再次加载并处理?

谢谢, TM

2 个答案:

答案 0 :(得分:2)

按以下方式创建列的名称:

C = FOREACH B GENERATE group as usr,COUNT(A) as countA;

以后可以通过这些名称引用它们,如下例所示:

D = FOREACH C GENERATE usr, countA;

答案 1 :(得分:2)

如果为列命名很麻烦,例如,如果您有大量列,则还可以通过零索引列号引用列。与Davis Broda发布的代码相同的代码如下:

 C = FOREACH B GENERATE group,COUNT(A);
 D = FOREACH C GENERATE $0, $1;