如何将1x1别名转换为标量



我想把计数转化为概率:

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搜索"与标量的铸造关系"

最新更新