我的代码是这样的:
pymt = LOAD 'pymt' USING PigStorage('|') AS ($pymt_schema);
pymt_grp = GROUP pymt BY key
results = FOREACH pymt_grp {
/*
* some kind of logic, filter, count, distinct, sum, etc.
*/
}
但现在我发现很多这样的日志:
org.apache.pig.impl.util.SpillableMemoryManager: Spilled an estimate of 207012796 bytes from 1 objects. init = 5439488(5312K) used = 424200488(414258K) committed = 559284224(546176K) max = 559284224(546176K)
实际上我找到了原因,主要是因为有一个“热”键,比如 key=0 作为 ip 地址,但我不想过滤这个键。有什么解决办法吗?我在我的 UDF 中实现了代数和累加器接口。