2017-07-14 11 views
0

假设我们有test_file以下数据:如何拉平一组包内的元组

1, 3, 4 
1, 5, 6 

和下面的脚本:

r1 = load 'test_file' using PigStorage(',') as (a:int, b:int, c:int); 

r2 = foreach r1 generate a, (b, c) as bc; 

r2_group = group r2 by a; 

r3 = foreach r2_group generate group as a, r2.bc as bc; 

r3将如下所示:

(1, {((3, 4)), ((5,6))}) 

那么,我该如何修改上面的脚本来产生下面的东西?

(1, ((3,4), (5,6))) 

回答

0

看起来像下面的代码做的伎俩:

r4 = foreach r3 { 
    tmp = BagToTuple(bc); 
    generate a as a, 
     tmp as bc; 
} 

r4看上去象这样:

(1,((5,6),(3,4)))