0
我試圖與豬做一個總結操作。如何在豬拉丁文中「總結」?
例如,我有一個表叫t3
:
product price country
A 5 Italy
B 4 USA
C 12 France
A 5 Italy
B 7 Russia
我需要做一個總結操作,使用2把鑰匙:product
和country
。
- 我做連擊操作,使用
product
和country
- 我算算價格,總結了價格值只是其中
CONCAT
結果重複 - 哪裏
CONCAT
結果不會重複,價格保持不變,如t3
表。
預期的輸出可能是:
CONCAT Price_1
AItaly 10
BUSA 4
CFrance 12
BRussia 7
在豬我寫下面的腳本(代碼是錯誤的,但只是爲了說明一個想法):
t3 = LOAD '/home/Desktop/3_table/3_table.data' AS (product:chararray, price:int, country:chararray);
c1 = FOREACH t3 GENERATE CONCAT(product, country);
c2 = FOREACH t3 GENERATE *, c1;
product_1 = GROUP c2 BY c1;
price_1 = FOREACH product_1 GENERATE group, SUM(product_1.price);
STORE price_1 INTO 'summarise_by_2_ID' USING PigStorage('\t');
也許有人可以解釋如何達到預期的結果? 非常感謝!
我可以再問一件嗎? 如果我需要'分類'同一張桌子。預期結果可以是: A(A,5,意大利),(A,5,意大利) B(B,4,USA),(B,7,俄羅斯) C(C,12,法國)\t CODE: t2 = LOAD'/home/Desktop/2_table/2_table.data'AS(product:chararray,price:int,country:chararray); A = GROUP t2 BY產品; C = FOREACH A GENERATE組$ 1,COUNT($ 1); STORE C INTO'分類'使用PigStorage('\ t'); 但我收到一個錯誤,豬不喜歡定義$ 1。有沒有其他的方法來定義第一個元素:(A,5,意大利),(A,5,意大利),所以我可以指出A重複2次? – Ale
我不明白你想做什麼,但類似這樣的事情可能會有所幫助:'C = FOREACH A GENERATE組,$ 1,COUNT($ 1);' – Frederic
返回:''(A,{(A,5,Italy ),(A,5,意大利)},2) (B,{(B,4,USA),(B,7,Russia)},2) (C,{(C12,France)}} ,1)'' – Frederic