猪在元组中有明显的价值

时间:2015-10-24 19:08:16

标签: apache-pig

例如,我在A中的元组中有这些字段 A =(12,13) (13,12) (16,17) (17,16)

现在怎样才能删除副本where(12,13)=(13,12)所以我的A = (12,13) (16,17)

非常感谢你 Onsiri

1 个答案:

答案 0 :(得分:0)

看起来您应该执行以下操作:

A = <original dataset>;
SPLIT A INTO B IF $0 > $1, C OTHERWISE;
D = FOREACH B GENERATE $1, $0;
E = UNION C, D;
F = DISTINCT E;

或者,您可以这样做:

A = <original dataset>;
B = FOREACH A 
    GENERATE 
       CASE WHEN $0 > 1 THEN $1 ELSE $0 END, 
       CASE WHEN $0 > 1 THEN $0 ELSE $1 END;
F = DISTINCT B;

注意:元组中的值超过2时,它实际上不能很好地扩展。