想要使用 pig 聚合来自两个已解析 xml 文件的文件的值
want to aggregate the values from two files that are already parsed xml file using pig
第一个文件包含以下内容
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
同样有多个 cl_id,对于每个 cl_id,c_id 不同,c_value 不同。
同样在第二个文件
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_id 更改,所以我想要第三个文件包含 c_val 的总和,即 cl_id 10201 & 对于 c_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
聚合结果并将其放入第三个文件。
请向我推荐猪脚本,我该怎么做。
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 [=10=],,,,+;
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(',');
第一个文件包含以下内容
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
同样有多个 cl_id,对于每个 cl_id,c_id 不同,c_value 不同。
同样在第二个文件
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_id 更改,所以我想要第三个文件包含 c_val 的总和,即 cl_id 10201 & 对于 c_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
聚合结果并将其放入第三个文件。
请向我推荐猪脚本,我该怎么做。
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 [=10=],,,,+;
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(',');