2015-09-04 64 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的 –