希望聚合已经使用pig解析过的xml文件中的两个文件的值吗

gstyhher  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(280)

第一个文件包含以下内容

cl_id   date         TM        c_id      c_val
10201   2015-4-15  01:00:00  56707065  0
10201   2015-4-15  01:00:00  56707066  1
10201   2015-4-15  01:00:00  56707067  200

像wise一样,有多个cl\u id,对于每个cl\u id,c\u id不同,c\u值也不同。
在第二个文件中也是如此

cl_id   dt         tm        c_id      c_val
10201   2015-4-15  01:00:00  56707065  300
10201   2015-4-15  01:00:00  56707066  60
10201   2015-4-15  01:00:00  56707067  20

文件1和文件2中的所有值都是相同的,只是计数器的值会随着c\u id的变化而变化,所以我想要第三个包含c\u val之和的文件,即对于cl\u id 10201和对于c\u id 56707065,我想要这样的结果 10201 2015-4-15 01:00:00 56707065 0+300 =300 最后第三个文件的输出是,

10201   2015-4-15  01:00:00  56707065 300

同样适用于 c_id 56707066,56707067 聚合结果并将其放入第三个文件。请给我建议一下我该怎么做。

ipakzgxi

ipakzgxi1#

Dump A;
cl_id   date         TM        c_id      c_val
10201   2015-4-15  01:00:00  56707065  0
10201   2015-4-15  01:00:00  56707066  1
10201   2015-4-15  01:00:00  56707067  200

Dump B;
cl_id   dt         tm        c_id      c_val
10201   2015-4-15  01:00:00  56707065  300
10201   2015-4-15  01:00:00  56707066  60
10201   2015-4-15  01:00:00  56707067  20

C = JOIN A BY (cl_id, c_id), B BY (cl_id,c_id);

D = foreach C generate $0,$1,$2,$3,$4+$9;

Dump D;
(10201,2015-4-15,01:00:00,56707065,300)
(10201,2015-4-15,01:00:00,56707066,61)
(10201,2015-4-15,01:00:00,56707067,220)

STORE D INTO '/home/infoobjects/aa.csv' using PigStorage(',');

相关问题