如何在PIG中运行独家SPLIT?

时间:2011-09-19 18:34:22

标签: apache-pig

我想知道:因为PIG中SPLIT关系运算符的默认行为是非排他性地分割关系(即如果一行符合2个或更多关系的条件,它将被放入所有关系中),是有没有办法专门拆分?我的意思是,我想运行一个SPLIT语句,它会在第一个关系中放入一行,它的条件适合它,然后将它放在其他关系中,即使它适合以后指定的条件关系。

正常分割下的一个例子:

A =

<1, 2, 3>
<4, 2, 1>
<8, 3, 4>
<4, 3, 3>
<7, 2, 5>
<8, 4, 3> 

然后

SPLIT A INTO X IF $0 < 7, Y IF ($0 > 2 AND $0<> 7);

给出:

X =

<1, 2, 3>
<4, 2, 1>
<4, 3, 3>

Y =

<4, 2, 1>
<8, 3, 4>
<4, 3, 3>
<8, 4, 3>

在这种情况下&lt; 4,2,1&gt;和&lt; 4,3,3&gt;进入两个关系。我希望每个人只能进入他们适合自己条件的第一个关系(A)。

注意:我知道我可以分两步完成这个步骤:首先将第一个条件与它的补码分开,然后将第二个条件除掉补码,但我希望得到一个解决方案(或者一个如果存在,至少可以更好地扩展到许多分裂。

0 个答案:

没有答案