Я пытался написать код, который я могу настроить. Ввод будет поступать в редуктор в соответствии с длиной символа, используя реализацию в разделе, где по умолчанию Mapper и Reducer, но возникает следующая ошибка. Я буду благодарен тому, кто мне поможет.
Ошибка в int setNumRedTasks)
:
Конфликт имен: метод getPartition(Object, Object, int) типа MyPartitioner имеет то же стирание, что и getPartition(K2, V2, int) типа Partitioner, но не переопределяет его.
Код:
package partition;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapred.Partitioner;
public abstract class MyPartitioner implements Partitioner<Text, IntWritable>{
@Override
public void configure(JobConf arg0) {
// TODO Auto-generated method stub
}
// @Override
public int getPartition(Object key, Object value, int setNumRedTasks) {
String s = key.toString();
if(s.length()==1)
{
return 0;
}
if(s.length()==2)
{
return 1;
}
if(s.length()==3)
{
return 2;
}
else
return 3;
}
}