Mapreduce ......正在做一个大胆的课程
Mapreduce... doing a udacity course
作为大胆课程的一部分,我应该编写一个映射器和一个缩减器函数。
我的映射器函数看起来像这样......我很确定它正在工作并且正确:
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])
映射器()
我的 reducer 函数不知何故没有正确添加:
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)
作为大胆课程的一部分,我应该编写一个映射器和一个缩减器函数。 我的映射器函数看起来像这样......我很确定它正在工作并且正确:
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])
映射器()
我的 reducer 函数不知何故没有正确添加:
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)