选择MapReduce设计模式

时间:2013-02-22 18:44:34

标签: design-patterns hadoop mapreduce

对于我的荣誉项目,我正在研究处理大学生命科学系内质谱仪(MS)产生的大量数据的方法。

我一直在阅读MapReduce Design Patterns& Hadoop:The Definitive Guide,我正在尝试将我拥有的数据连接到特定的地图&减少模式。

第一步是找到每条曲线的 加权峰值 。执行计算以将6或7个点(行)减少到单个点,并使用max / min,average等信息。

  • 数据为~8GB CSV文件,如下所示:

    100312_EXP229_GFPIP_5,1,0.00056783449000000002,0,402.0745297608135,1135.039794921875,1,0,0,0,0,0
    
  • 每一行基本上都是图表上的一个点,X& Y coords。

  • 这些点按其中一列分组为曲线。所以我知道 对于每条记录,它属于哪条曲线。

  • 每条曲线的点数不一,通常在4-8点左右。

我的问题是大多数示例似乎都是逐行处理问题,例如字数。我需要一次处理N行,但我不确定这是否是解决此问题的正确方法。

谢谢!

1 个答案:

答案 0 :(得分:3)

在您的情况下,应该足以逐行处理文件,并为映射器中的每一行输出<curve, point>。 reducer将接收所有属于单曲线的点:<curve, {point1, point2, ... }>作为输入。因此,您可以根据缩减器中曲线的点数计算最大值/最小值/平均值,并输出<curve, max/min/avg>作为最终结果。

PS。要在每个映射器中处理输入文件的N行,您可以使用NLineInputFormat