2015-05-09 5 views
2

Я пишу многоступенчатый mrjob. Первый шаг делает некоторые предварительной обработки и заканчивается следующим редуктором:Передача результата mrjob Шаг к следующему шагу в качестве параметра

def some_reducer(self, key, values): 
    values = (int (value) for value in values) 
    if key == 'iwantthiskey': 
     //I want to pass sum(values) as a parameter to the next step 

Я пытался идти через документацию и экспериментировал с добавлением опций PASSTHROUGH или добавления значения self.jobconf(), но я не мог» t понять это. Любая помощь будет оценена по достоинству.

ответ

0

Sonic provided an excellent solution by making a global variable. В принципе, как только вы получите требуемое значение, сохраните его в глобальной переменной для последующего использования.

my_parameter = None 

def some_reducer(self, key, values): 
    global my_parameter 
    values = (int (value) for value in values) 
    if key == 'iwantthiskey': 
     my_parameter = sum(values) 

def next_funtion_or_job(self, input, parameter=my_parameter): 
    #Your method goes here. 

`` `` `

Смежные вопросы