单行记录阅读器

时间:2014-09-22 05:21:57

标签: java hadoop

我想稍微修改一下记录阅读器。首先,我想了解一个记录阅读器如何适用于单行。我试着阅读一个定制的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;
        }

我没有更改任何其他功能。对于他们两个,当我给出两行输入时,我只获得映射器的第一行。我不明白错误是什么。我很抱歉,如果这是一个非常基本的问题,但我刚刚开始编写hadoop编码,此时我就陷入了困境。提前谢谢。

我想做的修改:我想做一个多字计数。在一定距离内计算一对单词(比如说2)。因此,可能存在跨越两行间隔的单词的单词。所以我想要的是在下一行的每一行中包含上一行中的单词(比如2)。我计划在recordreader中执行此操作,因为它只是将两个字符串附加到字符串中,我可以存储我之前看到的内容。

0 个答案:

没有答案