我有一个文件,路径是hduser/path/filename。现在我想把这个文件的前k行分别传递给k个maps。简单设置
FileInputFormat.setInputPaths(conf, new Path("hduser/path/filename"));
传递所有行(所有n行对应n个贴图)。但我想把这个限制在k<n。也就是说,我只想在mapreduce中处理一个文件的几行,而不是整个文件(比如说像文件中所选文本的字数)
3bygqnnd1#
你可以:使用nlineinputformat(将n行输入拆分为一个拆分)http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapreduce/lib/input/nlineinputformat.html但在这种情况下,其余的分割也将被处理……但每个分割是n行。或您可以重写Map器的run方法来控制何时要退出run方法(从而退出Map器)。
1条答案
按热度按时间3bygqnnd1#
你可以:
使用nlineinputformat(将n行输入拆分为一个拆分)http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapreduce/lib/input/nlineinputformat.html
但在这种情况下,其余的分割也将被处理……但每个分割是n行。
或
您可以重写Map器的run方法来控制何时要退出run方法(从而退出Map器)。