我试图在一些数据集上编写pythonmapreduce作业,我必须找到某些统计数据。这是输入数据及其形式的示例:
exchange, stock_symbol, date, stock_price_open,stock_price_high,stock_price_low, stock_price_close, stock_volume,stock_price_adj_close.
我需要使用查找股票交易最多的前10天,计算公式如下: stock_price_close * stock_volume
下面是我现在的代码:
from mrjob.job import MRJob
class MapReduce(MRJob):
def mapper(self, _, line):
values = line.split(',')
amount = int(float(values[6]) * float(values[7]))
code = values[1]
date = values[2]
list = (code, date, amount)
yield(None, list)
if __name__ == '__main__':
MapReduce.run()
但是,我在为这个工作实现一个reducer方法时遇到了问题,并且不确定reducer如何工作,只找到前10个元素。有人能帮帮我吗?
1条答案
按热度按时间bhmjp9jg1#
让这成为一个多步骤的工作。第一步的最终结果是每天交易的总金额。第二个获取总数,对其排序,并返回前10名。