Как справиться с разливом памяти у свиньи

Мой код вроде этого:

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, что-то вроде key = 0 в качестве IP-адреса, но я не хочу фильтровать этот ключ. есть ли решение? Я реализовал алгебраический интерфейс и интерфейс аккумулятора в своем UDF.

Ответы на вопрос(1)

Ваш ответ на вопрос