期待される出力のために以下のスクリプトを試すことができます:
質問1について
回答:質問2について
a = load'/home/abhijit/Downloads/movies.txt' USING PigStorage(',') AS (id:int,companyName:chararray,item:chararray,state:chararray);
Dump a;
(1,flipkart,pepsi,invalid)
(2,flipkart,tshirt,valid)
(3,flipkart,shirt,valid)
(4,amazon,shoe,valid)
(5,amazon,beer,invalid)
(6,flipkart,jewels,valid)
(7,flipkart,coke,invalid)
grp = group a by state;
dump grp;
(valid,{(2,flipkart,tshirt,valid),(3,flipkart,shirt,valid),(4,amazon,shoe,valid),(6,flipkart,jewels,valid)})
(invalid,{(1,flipkart,pepsi,invalid),(5,amazon,beer,invalid),(7,flipkart,coke,invalid)})
cnt = foreach grp generate $0, COUNT($1);
dump cnt;
(valid,4)
(invalid,3)
回答:
grp2 = group a by (companyName,state);
dump grp2;
((amazon,valid),{(4,amazon,shoe,valid)})
((amazon,invalid),{(5,amazon,beer,invalid)})
((flipkart,valid),{(2,flipkart,tshirt,valid),(3,flipkart,shirt,valid),(6,flipkart,jewels,valid)})
((flipkart,invalid),{(1,flipkart,pepsi,invalid),(7,flipkart,coke,invalid)})
cnt2 = foreach grp2 generate $0, COUNT($1);
dump cnt2;
((amazon,valid),1)
((amazon,invalid),1)
((flipkart,valid),3)
((flipkart,invalid),2)
があなたの豚のスクリプトですか? –