合并两个袋子,从猪的第一个袋子中获得所有场地

时间:2020-09-11 11:08:01

标签: hadoop apache-pig hcatalog

我是PIG脚本的新手。在这个问题上需要一些帮助。

我在猪里得到了两套袋子,从那儿我想从第一个袋子得到所有字段,如果第二个袋子具有相同字段的数据,则要覆盖第一个袋子的数据

列列表是动态的(列可以随时添加或删除)。 在集合b中,我们可能会在另一个字段中也获取当前为空的数据,如果是这样,则我们需要使用集合b中的可用数据覆盖集合a

列-唯一性,类别,b,c,d,e,f,区域,g,h,日期,方向,指标

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)

1 个答案:

答案 0 :(得分:0)

我能够通过以下方式实现预期的输出

final = FOREACH all_data生成Flatten($ 1),flatten($ 2。(region))作为区域,flatten($ 2。(indicator))作为指示器;