将mrjob步骤的结果作为参数传递给下一步

时间:2015-05-09 08:49:47

标签: python mapreduce mrjob

我正在写一个多步骤的mrjob。第一步做一些预处理,并以下面的reducer结束:

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()添加值,但我无法弄明白。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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.

````