我按照帮助如何处理来自alexeipab的猪溢出内存,它确实工作正常,但我现在有另一个问题,相同的示例代码:
pymt = LOAD 'pymt' USING PigStorage('|') AS ($pymt_schema);
pymt_grp_with_salt = GROUP pymt BY (key,salt)
results_with_salt = FOREACH pymt_grp {
--distinct
mid_set = FILTER pymt BY xxx=='abc';
mid_set_result = DISTINCT mid_set.yyy;
result = COUNT(mid_set_result)
}
pymt_grp = GROUP results_with_salt BY key;
result = FOREACH pymt_grp {
GENERATE SUM(results_with_salt.result); --it is WRONG!!
}
我不能在那个组中使用 sum,这与没有盐计算的结果有很大不同。
有什么解决办法吗?如果先过滤,会花费很多 JOIN 工作,并且会降低性能。