主要内容

使用MapReduce查找最大值

此示例显示如何在使用数据集中找到单个变量的最大值mapreduce.。它展示了最简单的使用mapreduce.由于只有一个键和最小的计算。

准备数据

创建数据存储Airlinesmall.csv.数据集。这个12mb的数据集包含几家航空公司的29列航班信息,包括到达和起飞时间。在本例中,选择arrdelay.(航班到达延迟)作为感兴趣的变量。

ds = tabulartextdataStore('airlinesmall.csv''尾声''na');ds.selectedvariablenames =.'arrdelay';

数据购物态度对待'na'缺少的值,并用缺少缺失值默认值。此外,这是sedicentvariablenames.属性允许您只使用所选择的感兴趣变量,您可以验证预览

预览(DS)
ANS =.8×1表Arrdelay ________ 8 8 21 13 4 59 3 11

运行mapreduce.

mapreduce.函数需要一个map函数和一个reduce函数作为输入。映射器接收数据块并输出中间结果。减速器读取中间结果并产生最终结果。

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

显示地图函数文件。

功能MaxArrivalDelayMapper(数据,信息,Intermkvstore)partmax = max(data.arrdelay);添加(Intermkvstore,'partialmaxarrivaldelay',partmax);结尾

Reducer收到每个块的最大到达延迟列表,并从值列表中找到总体最大到达延迟。mapreduce.只需调用此reducer一次,因为映射器仅添加一个唯一键键。减速机使用添加将最终键值对添加到输出。

显示regume函数文件。

功能MaxArrivalDelayRreducer(Intermkey,Intermvaliter,Outkvstore)%Intermkey是'PartialMaxArrivaldelay'。Intermvaliter是一个迭代器%具有关键“PartialMaxArrivalDelay”的所有值。maxval = -inf;尽管hasnext(Intermvaliter)maxval = max(getnext(Intermvaliriter),maxval);结尾%键值对添加到outkvstore将成为mapReduce的输出添加(outkvstore,'maxarrivaldelay',maxval);结尾

mapreduce.要将map和reduce函数应用到数据存储,DS.

maxdelay = mapreduce(ds,@maxarrivaldelaymapper,@maxarrivaldelayucer);
******************************** * 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 =.1×2表键值___________________ ________ {maxarrivaldelay'} {[1014]}

本地功能

在此列出的是地图并减少函数mapreduce.适用于数据。

功能MaxArrivalDelayMapper(数据,信息,Intermkvstore)partmax = max(data.arrdelay);添加(Intermkvstore,'partialmaxarrivaldelay',partmax);结尾%--------------------------------------------------------------功能MaxArrivalDelayRreducer(Intermkey,Intermvaliter,Outkvstore)%Intermkey是'PartialMaxArrivaldelay'。Intermvaliter是一个迭代器%具有关键“PartialMaxArrivalDelay”的所有值。maxval = -inf;尽管hasnext(Intermvaliter)maxval = max(getnext(Intermvaliriter),maxval);结尾%键值对添加到outkvstore将成为mapReduce的输出添加(outkvstore,'maxarrivaldelay',maxval);结尾%--------------------------------------------------------------

也可以看看

|

相关的话题