Как увеличить счетчики Hadoop в UDF Jython в Pig

Я хотел бы следить за ходом работы в Pig. Большая часть работы выполняется в UDF, написанных на Jython. Есть ли способ определить/увеличить счетчик Hadoop из UDF Jython?

Заранее спасибо.

0
nl ja de

2 ответы

Я не могу проверить это прямо сейчас (извините за непроверенный код), но в Java UDF (которые очень похожи) с Pig 0.8 он должен выглядеть следующим образом:

public class INC_COUNTER extends EvalFunc {

    @Override
    public DataBag exec(Tuple input) throws IOException {

        PigStatusReporter reporter = PigStatusReporter.getInstance();
        if (reporter != null) {
           reporter.getCounter(Counters.EXAMPLE).increment(1);//Counters.EXAMPLE is an enum value
        }
        return null;
    }
}

Я надеюсь, что это сработает, и вы можете превратить этот код в решение для Jython UDF.

2
добавлено

You could add a counter to your Hadoop configuration using setInt("", ). Then everytime the UDF runs call and increment the value using setInt("", getInt("") + 1). I did something similar once in a Hive UDF I think.

В Java документы .

0
добавлено
Мои UDF написаны в Jython, как я могу получить правильный экземпляр конфигурации Hadoop из регулярной функции Jython?
добавлено автор Bolo, источник