Java 为Mapreduce使用WritableCompariable时出现警告
我正在做一个map reduce项目,我正在努力寻找利润最高的前10家商店。我正在使用二级排序来进行排序,但是,我有一个不断出现的警告。我对MapReduce和Java相当陌生,所以我希望有人能帮我解决这个问题。警告针对代码行:Java 为Mapreduce使用WritableCompariable时出现警告,java,mapreduce,Java,Mapreduce,我正在做一个map reduce项目,我正在努力寻找利润最高的前10家商店。我正在使用二级排序来进行排序,但是,我有一个不断出现的警告。我对MapReduce和Java相当陌生,所以我希望有人能帮我解决这个问题。警告针对代码行: public int compare(WritableComparable wc1, WritableComparable wc2) 警告说“WritableComparable是原始类型。对泛型类型WritableComparable的引用应该参数化” 这是二次排序
public int compare(WritableComparable wc1, WritableComparable wc2)
警告说“WritableComparable是原始类型。对泛型类型WritableComparable的引用应该参数化”
这是二次排序的全部代码:
import org.apache.hadoop.io.DoubleWritable;
import org.apache.hadoop.io.WritableComparable;
import org.apache.hadoop.io.WritableComparator;
public class CountComparator extends WritableComparator
{
protected CountComparator()
{
super(DoubleWritable.class, true);
}
@Override
public int compare(WritableComparable wc1, WritableComparable wc2)
{
DoubleWritable pair1 = (DoubleWritable) wc1;
DoubleWritable pair2 = (DoubleWritable) wc2;
//int result = pair1.get() < pair2.get() ? 1 : pair1.get() == pair2.get() ? 0 : -1;
if(pair1.get() < pair2.get())
{
return 1;
}
else if (pair1.get() == pair2.get())
{
return 0;
}
else
{
return -1;
}
//return result;
}
}
import org.apache.hadoop.io.DoubleWritable;
导入org.apache.hadoop.io.WritableComparable;
导入org.apache.hadoop.io.WritableComparator;
公共类CountComparator扩展了WritableComparator
{
受保护计数比较器()
{
super(DoubleWritable.class,true);
}
@凌驾
公共整数比较(可写可比wc1、可写可比wc2)
{
双可写对1=(双可写)wc1;
双可写pair2=(双可写)wc2;
//int result=pair1.get()
正如我提到的,我对Java和map reduce是新手,所以我不确定它的含义以及如何修复它。如果有人能帮助我,我将不胜感激。可能只是一个简单的Java案例,需要显式地给出正确的泛型类型。我相信在大多数情况下都可以忽略这一点(如您引用的示例),但您可以冒险在方法参数声明中提供
CountComparator
类型,如下所述: