合并两个袋子并从猪中的第一个袋子中获取所有字段
Merge two bag and get all the field from first bag in pig
我是 PIG 脚本的新手。在这个问题上需要一些帮助。
我在 pig 中有两套包,从那里我想从第一个包中获取所有字段,如果第二个包具有相同字段的数据,则覆盖第一个包的数据
列列表是动态的(列可能随时添加或删除)。
在集合 b 中,我们可能会在另一个字段中获取当前为空白的数据,如果是这样,那么我们需要用集合 b
中可用的数据覆盖集合 a
列 - uniqueid,catagory,b,c,d,e,f,region,g,h,date,direction,indicator
EG:
all_data= COGROUP a by (uniqueid), b by (uniqueid);
输出:
(1,{(1,test,,,,,,,,city,,,,,2020-06-08T18:31:09.000Z,west,,,,,,,,,,,,,A)},{(1,,,,,,,,,,,,,,2020-09-08T19:31:09.000Z,,,,,,,,,,,,,,N)})
(2,{(2,test2,,,,,,,,dist,,,,,2020-08-02T13:06:16.000Z,east,,,,,,,,,,,,A)},{(2,,,,,,,,,,,,,,2020-09-08T18:31:09.000Z,,,,,,,,,,,,,,N)})
预期结果:
(1,test,,,,,,,,city,,,,,2020-09-08T19:31:09.000Z,west,,,,,,,,,,,,,N)
(2,test2,,,,,,,,dist,,,,,2020-09-08T18:31:09.000Z,east,,,,,,,,,,,,N)
我能够通过以下
实现预期的输出
final = FOREACH all_data GENERATE flatten($1),flatten($2.(region)) 作为区域,flatten($2.(indicator)) 作为指标;
我是 PIG 脚本的新手。在这个问题上需要一些帮助。
我在 pig 中有两套包,从那里我想从第一个包中获取所有字段,如果第二个包具有相同字段的数据,则覆盖第一个包的数据
列列表是动态的(列可能随时添加或删除)。 在集合 b 中,我们可能会在另一个字段中获取当前为空白的数据,如果是这样,那么我们需要用集合 b
中可用的数据覆盖集合 a列 - uniqueid,catagory,b,c,d,e,f,region,g,h,date,direction,indicator
EG:
all_data= COGROUP a by (uniqueid), b by (uniqueid);
输出:
(1,{(1,test,,,,,,,,city,,,,,2020-06-08T18:31:09.000Z,west,,,,,,,,,,,,,A)},{(1,,,,,,,,,,,,,,2020-09-08T19:31:09.000Z,,,,,,,,,,,,,,N)})
(2,{(2,test2,,,,,,,,dist,,,,,2020-08-02T13:06:16.000Z,east,,,,,,,,,,,,A)},{(2,,,,,,,,,,,,,,2020-09-08T18:31:09.000Z,,,,,,,,,,,,,,N)})
预期结果:
(1,test,,,,,,,,city,,,,,2020-09-08T19:31:09.000Z,west,,,,,,,,,,,,,N)
(2,test2,,,,,,,,dist,,,,,2020-09-08T18:31:09.000Z,east,,,,,,,,,,,,N)
我能够通过以下
实现预期的输出final = FOREACH all_data GENERATE flatten($1),flatten($2.(region)) 作为区域,flatten($2.(indicator)) 作为指标;