2013-12-08 62 views
3

在猪,当我离开加盟和行没有行,值NULL左连接中缺少字段的默认值?

c = join a by ($0) left, b by ($0); 

如果

a=((1,10),(2,20)) 
b=((1,30)) 

然后

c=((1,10,30),(2,20,NULL)) 

我想用默认值(比如说,-1)而不是NULL,这样

c=((1,10,30),(2,20,-1)) 

我该怎么做?

如果这是不可能的,我该如何更改c的第3列,使其具有默认值而不是NULL

回答

5

我不知道是否可以在连接语句中可以做到,但你添加添加另一个声明:

d = FOREACH c GENERATE $0, $1, (($2 IS NULL) ? -1 : $2); 

我想这不会引发额外的MR工作。

+1

是否需要引用'-1'? – sds

+0

如果你把它当作整数,那么不,对不起。我已经更新了答案。 – Ruslan