用于单行的recordreader

kq0g1dla  于 2021-06-02  发布在  Hadoop
关注(0)|答案(0)|浏览(260)

我想修改一下recordreader。所以首先,我想看看一个读写器是如何工作的。我试着读一个定制的readrecorder。

@Override
        public boolean nextKeyValue() throws IOException, InterruptedException {
            boolean returnValue =  lineRecord.nextKeyValue();
            value.clear();
             if (key == null) {
                key = new IntWritable();
            }
            key.set(countKey++);
            if (value == null) {
                value = new Text();
            }
            value = lineRecord.getCurrentValue();

            if(value != null)
                    return true;
            return false;
        }

我也尝试了另一个代码。

@Override
        public boolean nextKeyValue() throws IOException, InterruptedException {
            boolean returnValue =  lineRecord.nextKeyValue();
            value.clear();
             if (key == null) {
                key = new IntWritable();
            }
            key.set(countKey++);
            if (value == null) {
                value = new Text();
            }
            value = lineRecord.getCurrentValue();
            return returnValue;
        }

我没有改变任何其他功能。对于他们两个,当我给出两行输入时,我只得到Map器的第一行。我不明白错在哪里。我很抱歉,如果这是一个非常基本的问题,但我刚刚开始在hadoop编程,我在这一点上卡住了。提前谢谢。
我想做的修改:我想做一个多字计数。在一定距离内数一对单词(比如说2)。所以可以有两个单词隔两行的单词。所以我想在下一行的每一行中加入上一行的单词(比如2)。我计划在recordreader中这样做,因为它只是将两个字符串附加到一个字符串中,并且我可以存储上一次看到的内容。

暂无答案!

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

相关问题