Python 用map-reduce求最小值
我试图找到最小的数据集,并给出了这个例子来帮助。代码给了我最大值。我找不到要改变什么才能让它找到最小值Python 用map-reduce求最小值,python,mapreduce,Python,Mapreduce,我试图找到最小的数据集,并给出了这个例子来帮助。代码给了我最大值。我找不到要改变什么才能让它找到最小值 from mrjob.job import MRJob from mrjob.step import MRStep class HighestRevenue(MRJob): def mapper_get_city(self, key, line): # create a key-value pair with key: city and value: amount
from mrjob.job import MRJob
from mrjob.step import MRStep
class HighestRevenue(MRJob):
def mapper_get_city(self, key, line):
# create a key-value pair with key: city and value: amount
line_cols = line.split(',')
yield line_cols[0], float(line_cols[2])
def combiner_process_city(self, city, amount):
# consolidates all key-value pairs of mapper function (performed at mapper nodes)
yield city, sum(amount)
def reducer_city_amount(self, city, amount):
# final consolidation of key-value pairs at reducer nodes
yield None, (city, sum(amount))
def secondReducer(self, city, amount):
self.aList = []
for a in amount:
self.aList.append(a)
self.aList.sort(key=lambda x: x[1], reverse=True)
for m in range(0,1):
yield self.aList[0]
def steps(self):
return [
MRStep(mapper = self.mapper_get_city,
combiner = self.combiner_process_city,
reducer = self.reducer_city_amount),
MRStep(reducer = self.secondReducer)
]
将
reverse=True
从sort
过程中删除secondReducer
已经有了一个很好的答案。我只是想指出,将来您可能希望以一种好的方式格式化代码。并尝试发布最小的代码片段,这是一个工作示例,但可以很快理解。这将增加用户回答您的问题的意愿,从而解决我遇到的问题。我假设相反的陈述只是将结果视为相反。