わかりにくいタイトルですみません。ここでやろうとしているのは、次のような関係です。
{group: chararray,G: {(query: chararray,type: chararray,count: long)}}
これは「グループ化」の結果であり、各キーには「タイプ」で区別された最大 2 つのタプルがあります。たとえば、1 つの例は次のようになります。
{group:'abc', G:{('abc', 'A', 10), ('abc', 'B', 20)}
ここで、各グループについて、('A' でカウント)/('B' でカウント) の計算を行います。私はPigにかなり慣れていないので、さまざまな方法を試しましたが、うまくいきませんでした。なにか提案を?私が試したいくつかのこと:
I = group G by query;
J = foreach I {
CC=filter G by type=='A';
VV=filter G by type=='B';
--generate group, (float)(FLATTEN(CC.count))/(float)(FLATTEN(VV.count)) as CTR, CC, VV ;
--or generate group, (float)(FLATTEN(CC.count))/FLATTEN(VV.count), CC.count, VV.count;
--or generate group, CC.count/VV.count, CC.count, VV.count;
}
どれも機能しませんでした。