抱歉标题很尴尬。我在这里尝试做的是一个关系,例如:
{group: chararray,G: {(query: chararray,type: chararray,count: long)}}
这是“分组依据”的结果,每个键最多有 2 个元组,由“类型”区分。例如,一个示例可能如下所示:
{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;
}
没有工作。