Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何查找MapReduce中的前10个元素_Python_Algorithm_Sorting_Hadoop_Mapreduce - Fatal编程技术网

Python 如何查找MapReduce中的前10个元素

Python 如何查找MapReduce中的前10个元素,python,algorithm,sorting,hadoop,mapreduce,Python,Algorithm,Sorting,Hadoop,Mapreduce,我试图在一些数据集上编写Python MapReduce作业,我必须找到某些统计数据。这是输入数据及其格式的示例: exchange, stock_symbol, date, stock_price_open,stock_price_high,stock_price_low, stock_price_close, stock_volume,stock_price_adj_close. 我需要使用“查找交易最多的股票的前10个交易日”,计算公式为:stock\u price\u close*st

我试图在一些数据集上编写Python MapReduce作业,我必须找到某些统计数据。这是输入数据及其格式的示例:

exchange, stock_symbol, date, stock_price_open,stock_price_high,stock_price_low, stock_price_close, stock_volume,stock_price_adj_close.
我需要使用“查找交易最多的股票的前10个交易日”,计算公式为:
stock\u price\u close*stock\u 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个元素。有人能帮我吗?

把这当成一份工作。第一步的最终结果是每天交易的总金额。第二个获取总数,对其进行排序,并返回前10名。

在类MapReduce上,创建可容纳10项的新属性,即包含10项的列表,将其命名为top_ten或其他名称。您可能必须手动限制在此列表中添加十多个元素。过滤功能可以计算股票价格收盘价*股票成交量值,并根据需要更新前十名。我们在谈论多少数据。如果不是那么多,您当然可以通过使用一个减速机和一个组合器来减少减速机组合器中的工作负载。