合并两个包并从pig中的第一个包获得所有字段

xqk2d5yq  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(293)

我是新手。在这个问题上需要一些帮助。
我在pig中得到了两个包,从那里我想得到第一个包的所有字段,如果第二个包有相同字段的数据,则覆盖第一个包的数据
列列表是动态的(列可以随时被添加或删除)。在集合b中,我们可能会在另一个字段中获得当前为空的数据,如果是这样,那么我们需要用集合b中可用的数据覆盖集合a
列-唯一、类别、b、c、d、e、f、区域、g、h、日期、方向、指示器
如:

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)
nhjlsmyf

nhjlsmyf1#

我能达到预期的产出与以下
final=foreach all\ u data生成flatten($1),flatten($2.(region))作为region,flatten($2.(indicator))作为indicator;

相关问题