我想把计数转化为概率:
total = foreach (group A all) generate SUM(A.count);
A = foreach A generate A.count / total as probability;
这不起作用,因为total
是一个别名,而不是标量:
标量投影无效:total:需要从中投影列将其用作标量的关系
即使别名total
只有一个字段(和),您仍然必须引用该字段。
这应该有效:
total = foreach (group A all) generate SUM(A.count) as total;
A = foreach A generate A.count / total.total as probability;
试试这个
total = foreach (group A all) generate SUM(A.count) as total_sum;
A = foreach A generate count / (int)total.total_sum as probability;
在这里http://pig.apache.org/docs/r0.11.1/basic.html#cast搜索"与标量的铸造关系"