将单个文件的几行传递给hadoop中的等效数量的映射

时间:2014-02-28 07:55:15

标签: hadoop mapreduce hdfs

我在路径hduser / path / filename中有一个文件说。现在我想将这个文件的前K行分别传递给K个地图。只需设置

FileInputFormat.setInputPaths(conf, new Path("hduser/path/filename"));

传递所有线条(所有N条线都分别为N个地图)。但是我想把它限制在K< N.那就是我想在mapreduce中只处理几行文件而不是完整的文件(比如文件中文本选择的字数)

1 个答案:

答案 0 :(得分:0)

你可以:

使用NLineInputFormat(将N行输入分割为一个分割) http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapreduce/lib/input/NLineInputFormat.html

但在这种情况下,其余的分割也将被处理....但每个分割都是N行。

OR

您可以覆盖Mapper的run方法来控制何时退出run方法(以及Mapper)。