为了我的荣誉项目,我正在研究处理大学生命科学系内质谱仪(MS)产生的大量数据的方法。
我一直在阅读MapReduce Design & Hadoop:权威指南,我正在尝试将我所拥有的数据连接到特定的映射和缩减模式。
第一步是求出每条曲线的加权峰值。执行计算,将6点或7点(行)减少到一个点,信息为max/min,平均值。
我的问题是,大多数的例子似乎都是一行行地处理问题,例如字数。我需要一次处理N行,尽管我不确定这是否是解决这个问题的正确方法。
谢谢!
发布于 2013-02-22 19:30:57
在您的示例中,应该可以逐行处理文件,并对映射器中的每一行输出<curve, point>进行处理。减速器将接收所有的点,属于一个单一的曲线:<curve, {point1, point2, ... }>作为输入。因此,您可以根据减速器中的曲线点计算最大/分钟/avg值,并输出<curve, max/min/avg>作为最终结果。
PS。为了准确地处理每个映射器中输入文件的N行,可以使用NLineInputFormat。
https://stackoverflow.com/questions/15031066
复制相似问题