0
돼지와 함께 요약 작업을하려고합니다.돼지 라틴어에서 '요약'하는 방법?
예를 들어, 나는 테이블이 t3
라고 있습니다 product
및 country
:
product price country
A 5 Italy
B 4 USA
C 12 France
A 5 Italy
B 7 Russia
내가이 키를 사용하여 대한 요약 작업을 할 필요가있다.
- 나는
- , 가격은에서와 동일하게 유지 나는
CONCAT
결과가 반복 단지 가격 값을 요약, 가격을 계산해야product
및 country
를 사용하여, CONCATENATE 작업을 할t3
테이블.
CONCAT
결과가 반복되지 않습니다
예상 출력 수 :
돼지에서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, Italy), (A, 5, 이탈리아) B (B, 4, 미국) C (C, 12, 프랑스) \t 코드 : t2 = LOAD '/home/Desktop/2_table/2_table.data'그대로 (제품 : chararray, 가격 : int, 국가 : chararray); A = GROUP t2 BY 제품; C = FOREACH A GENERATE 그룹 $ 1, COUNT ($ 1); C를 '분류'USING PigStorage ('\ t')에 보관하십시오. 하지만 돼지는 diffinition $ 1을 좋아하지 않습니다. 첫 번째 요소를 정의하는 다른 방법이 있습니까 : (A, 5, Italy), (A, 5, Italy), 그래서 repeatc를 두 번 계산할 수 있습니까? – Ale
나는 당신이하고 싶은 것을 정확히 이해하지 못하지만, 이렇게 도움을 줄 수 있습니다 :'C = FOREACH A GENERATE group, $ 1, COUNT ($ 1);' – Frederic
는''(A, {(A, 5, Italy (C, {(C, 12, France)}, (A, 5, Italy)}), 2) (B, {(B, 4, 미국), (B, 7, 러시아)}, 2) , 1)'' – Frederic