2015-09-04 38 views
1

第一个文件已经被解析的XML文件中的两个文件汇总值包含以下希望从使用猪

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所以我想第三个文件,其中包含了cl_id c_val即总和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聚集的结果,并把它放到第三个文件。 请给我猪脚本,我怎么能做到这一点。

回答

1
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(','); 
+0

嗨krish,谢谢你的回答,你可以告诉我什么是$ 0,$ 1,$ 4 $ 9在这里使用 –

+0

我们可以将相同的脚本转换为python spark。 –

+0

$ 0,$ 1,$ 4 $ 9是索引号。例如,如果你有3列 - id,姓名,大学。那么你可以得到0美元的ID,1美元的名称和2美元的学院谢谢kishore的 –