java.io.IOException: Illegal partition for 67 (-1)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.io.IOException: Illegal partition for 67 (-1)相关的知识,希望对你有一定的参考价值。

 

 

今天写MapReduce的分区进行排序的功能,自己写了一个Partitioner,然后用的时候就错了

 

public static class MyPartition extends Partitioner<IntWritable, IntWritable> {
    @Override
    public int getPartition(IntWritable key, IntWritable value, int numTaskReduce) {

        int maxNumber = 550;
        int end = maxNumber/numTaskReduce + 1;
        int keyNum = key.get();
        for(int i=0; i<numTaskReduce; i++) {
            if(keyNum >= end*i && keyNum <= end*(i+1)) {
                return i;
            }
        }
        return -1;
    }
}

 

后来发现应该是返回了-1,导致了出错的,分区默认是从0开始的,返回-1肯定就报错了。

以上是关于java.io.IOException: Illegal partition for 67 (-1)的主要内容,如果未能解决你的问题,请参考以下文章

java.io.IOException: toDerInputStream 拒绝标签类型 77

java.io.IOException:系统找不到指定的路径

java.io.IOException: Connection reset by peer和java.io.IOException: Connection timed out。Socket

android java.io.IOException:传输端点未连接

任务 ':app:compileDebugKotlin' java.io.IOException 执行失败

火花:java.io.IOException:设备上没有剩余空间[再次!]