马普雷杜..做一个乌达西学问的课程



作为udacity课程的一部分,我应该编写一个映射器和一个化简器函数。我的映射器函数看起来像这样。我很确定它正在工作并且正确:

def mapper():
for line in sys.stdin:
    data= line.strip().split(",")
    #logging.info("{0}t{1}".format(data[1],data[6]))
    print "{0}t{1}".format(data[1],data[6])

映射器()

我的减速器函数不知何故无法正确加起来:

def reducer():
old_key=None
for line in sys.stdin:
    data= line.strip().split("t")
    #logging.info(data)
 `   new_key=data[0] 
    ENTRIESn_hourly=data[1]
    count=0
    if new_key and new_key != ENTRIESn_hourly:
         print "{0}t{1}".format(new_key,count)
    else:
         count+= int(ENTRIESn_hourly)

减速器()

我在这里错过了什么?

您将每个输入行的计数设置为零。 count=0 只应在有新密钥时调用,如下所示:

def reducer():
old_key=None
for line in sys.stdin:
    data= line.strip().split("t")
    #logging.info(data)
 `   new_key=data[0] 
    ENTRIESn_hourly=data[1]
    if new_key and new_key != ENTRIESn_hourly:
         print "{0}t{1}".format(new_key,count)
         count=0
    else:
         count+= int(ENTRIESn_hourly)

相关内容

  • 没有找到相关文章

最新更新