在hadoop中,将单个文件的几行传递给相等数量的map

dbf7pr2w  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(283)

我有一个文件,路径是hduser/path/filename。现在我想把这个文件的前k行分别传递给k个maps。简单设置

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

传递所有行(所有n行对应n个贴图)。但我想把这个限制在k<n。也就是说,我只想在mapreduce中处理一个文件的几行,而不是整个文件(比如说像文件中所选文本的字数)

3bygqnnd

3bygqnnd1#

你可以:
使用nlineinputformat(将n行输入拆分为一个拆分)http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapreduce/lib/input/nlineinputformat.html
但在这种情况下,其余的分割也将被处理……但每个分割是n行。

您可以重写Map器的run方法来控制何时要退出run方法(从而退出Map器)。

相关问题