通过MapReduce查找最大值

Posted 数据分析绘图

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过MapReduce查找最大值相关的知识,希望对你有一定的参考价值。

通过MapReduce查找最大值

本示例显示如何使用mapreduce查找数据集中单个变量的最大值它演示了mapreduce最简单的用法,因为只有一个键和最少的计算。

内容

  • 准备数据

  • 运行MapReduce

准备数据

使用airlinesmall.csv数据集创建数据存储这个12兆字节的数据集包含了几个航空公司的29个航班信息栏,包括到达和离开时间。在这个例子中,选择ArrDelay(航班到达延迟)作为感兴趣的变量。

ds = tabularTextDatastore('airlinesmall.csv''TreatAsMissing''NA');ds.SelectedVariableNames = 'ArrDelay' ;

数据存储区将“NA”值视为缺失,并默认使用NaN替换缺失的值此外,SelectedVariableNames属性允许您仅使用所选的感兴趣变量,您可以使用预览进行验证


preview(ds)
ans =
  8x1 table
    ArrDelay
    ________
        8   
        8   
       21   
       13   
        4   
       59   
        3   
       11   

运行MapReduce

映射精简功能需要的映射函数和减小函数作为输入。该映射程序接收大量数据并输出中间结果。减速器读取中间结果并产生最终结果。

在这个例子中,映射器在每个数据块中找到最大到达延迟。然后映射器将这些最大值存储为与“PartialMaxArrivalDelay”键相关联的中间值

显示地图功能文件。

函数 maxArrivalDelayMapper(data,info,intermKVStore) 用于MaxMapreduceExample的%Mapper函数。%版权所有1984-2014 The MathWorks,Inc. %Data是ArrDelay的一个n-1表格。由于数据源是表格,读取的返回值是一个表格对象。partMax = max(data.ArrDelay);add(intermKVStore,'PartialMaxArrivalDelay',partMax);

Reducer接收每个组块的最大到达延迟列表,并从值列表中找到总体最大到达延迟。mapreduce只调用一次这个reducer,因为mapper只添加一个唯一的键。Reducer使用add来将最终的键值对添加到输出中。

显示缩小功能文件。

函数 maxArrivalDelayReducer(intermKey,intermValIter,outKVStore) 用于MaxMapreduceExample的%Reducer函数。%版权所有2014 The MathWorks,Inc.%intermKey是'PartialMaxArrivalDelay'。intermValIter是具有键'PartialMaxArrivalDelay'的所有值的迭代器maxVal = -inf; hasnext(intermValIter)
   maxVal = max(getnext(intermValIter),maxVal);end %添加到outKVStore的键值对将成为mapreduce add 的输出(outKVStore,'MaxArrivalDelay',maxVal);

使用mapreduce将映射和减少函数应用于数据存储区ds

maxDelay = mapreduce(ds,@maxArrivalDelayMapper,@maxArrivalDelayReducer);
********************************* MAPREDUCE进展*********************************地图0%减少0%地图16%减少0%地图32%减少0%地图48%减少0%地图65%减少0%地图81%减少0%地图97%减少0%地图100%减少0%地图100%减少100%

mapreduce返回一个数据存储,maxDelay,包含当前文件夹中的文件。

从输出数据存储区maxDelay读取最终结果

readall(MAXDELAY)
ans =
 
 1x2 table

           Key           Value 
    _________________    ______

    'MaxArrivalDelay'    [1014]



以上是关于通过MapReduce查找最大值的主要内容,如果未能解决你的问题,请参考以下文章

Matlab使用 MapReduce 计算图像的最大平均 HSV

Hadoop MapReduce输出最大化

hadoop的mapreduce常见算法案例有几种

使用 Hadoop/MapReduce 查找匹配行

利用MapReduce实现倒排索引

片段的条件自定义 OnBackPress