public void run(Context context) throws IOException, InterruptedException
{
setup(context);
while (context.nextKeyValue()) {
map(context.getCurrentKey(), context.getCurrentValue(), context);
}
cleanup(context);
}
在调用Map程序的run方法时,每当它从recordreader中通过nextkeyvalue()函数获取下一个键、值对并处理当前键、值对时,使用上面的代码段。因此,在这种情况下,如果我们正在处理某个特定inputspilt的最后一条记录,nextkeyvalue()函数将返回false,并且我们不会在每个inputspilt中丢失最后一条记录?
1条答案
按热度按时间osh3o9ms1#
nextKeyValue()
前进到下一个键/值并返回true,或者到达末尾并返回false。所以什么时候nextKeyValue()
最后一次返回truegetCurrentKey()
以及getCurrentValue()
将获取分割的最终键/值。