2013-06-07 27 views
8

xem xét dưới đây liên quanPig có điều kiện khai thác

test = LOAD 'input' USING PigStorage(',') as (a:chararray, b:chararray); 

Có cách nào để đạt được những điều sau

if (b == 1) { 
    a = 'abc'; 
else if (b == 2) { 
    a = 'xyz'; 
else 
    // retain whatever is there in the column 'a' 

Trả lời

11

Bạn có thể làm một FOREACH và sử dụng các nhà điều hành ternary như sau.

test2 = FOREACH test GENERATE (b=='1' ? 'abc' : (b=='2' ? 'xyz' : a)) AS a, b;