mapper 运行() 方法如何处理最后一条记录?
How does mapper run() method process the last record?
public void run(Context context) throws IOException, InterruptedException
{
setup(context);
while (context.nextKeyValue()) {
map(context.getCurrentKey(), context.getCurrentValue(), context);
}
cleanup(context);
}
使用上面的代码片段,当映射器的运行方法被调用时,每次它通过nextkeyvalue()函数从recordreader获取下一个键值对并处理当前键值对。因此,在那种情况下,如果我们正在处理特定输入拆分的最后一条记录,则 nextkeyvalue() 函数将 return false 并且我们不会丢失每个输入拆分中的最后一条记录?
nextKeyValue()
要么前进到下一个 key/value 且 returns 为真,要么已到达终点且 returns 为假。因此,当 nextKeyValue()
returns 最后一次为真时 getCurrentKey()
和 getCurrentValue()
将获得最终的 key/value 拆分。
public void run(Context context) throws IOException, InterruptedException
{
setup(context);
while (context.nextKeyValue()) {
map(context.getCurrentKey(), context.getCurrentValue(), context);
}
cleanup(context);
}
使用上面的代码片段,当映射器的运行方法被调用时,每次它通过nextkeyvalue()函数从recordreader获取下一个键值对并处理当前键值对。因此,在那种情况下,如果我们正在处理特定输入拆分的最后一条记录,则 nextkeyvalue() 函数将 return false 并且我们不会丢失每个输入拆分中的最后一条记录?
nextKeyValue()
要么前进到下一个 key/value 且 returns 为真,要么已到达终点且 returns 为假。因此,当 nextKeyValue()
returns 最后一次为真时 getCurrentKey()
和 getCurrentValue()
将获得最终的 key/value 拆分。