reduce后报空指针
时间: 2023-11-04 19:57:46 浏览: 147
空指针
空指针异常通常是因为某个对象没有被正确实例化而导致的。根据您提供的引用内容,可能是因为在比较器相关的文件中存在未定义的对象。第一行报错的位置指向了org.apache.hadoop.io.WritableComparator.compare(WritableComparator.java:157),这可能意味着在该文件中有一个对象没有被正确定义,导致调用compare方法时发生了空指针异常。
应该解决这个问题的方法是设置输出key类型并开启自定义比较。可以通过在父类构造器中传入reduce输入的key的类型作为第一个参数,并将第二个参数设置为true来表示开启自定义比较。如果未设置第二个参数,它将为null,这将导致在compare方法中无法创建两个比较对象,进而导致空指针异常的产生。
总之,要解决reduce后报空指针异常的问题,需要确保比较器相关的文件中定义了所有的对象,并正确设置输出key类型和开启自定义比较。
阅读全文