mapreduce context.nextkeyvalue()错误,用于最后分割的块

2uluyalo  于 2021-06-01  发布在  Hadoop
关注(0)|答案(0)|浏览(173)

我正在使用mapreduce在mapper阶段训练一些模型。为此,我需要在mapper阶段找到最后一行输入。为此,我使用以下函数: Context.nextKeyValue() 返回布尔值: True 如果在和之后有值 False 否则。
在我的例子中,我的数据在hdfs中被分成6个不同的块。其中5个大小相同,最后一个小一点。我们知道每个制图员只在一个街区工作。
当我尝试这个函数时 Context.nextKeyValue() ,它适用于5个第一个Map器(具有相同块大小的Map器),但不适用于函数始终返回的最后一个Map器 True !
我读到关于这个机制:

public void run(Context context) throws IOException, InterruptedException{
    setup(context);
    while(context.nextKeyValue()){
        map(context.setCurrentKey(),context.getCurrentValue(),context)
    }
    cleanup(context);
}

我的问题是,我做错什么了吗?有人知道发生了什么吗?
提前谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题