在Hadoop 1.X中,您可以使用来为输出指定一个自定义比较器类JobConf.setOutputKeyComparatorClass。
比较器必须实现RawComparator接口。
对于Hadoop 2.X,这是通过使用Job.setSortComparatorClass,仍然使用的实现来完成的RawComparator。
示例,简单的代码
class MyKeyComparator extends WritableComparator {
protected DescendingKeyComparator() {
super(Text.class, true);
}
@SuppressWarnings("rawtypes")
@Override
public int compare(WritableComparable w1, WritableComparable w2) {
Text key1 = (Text) w1;
Text key2 = (Text) w2;
return -1 * key1.compareTo(key2);
}
}
Run Code Online (Sandbox Code Playgroud)
然后将其添加到作业中
job.setSortComparatorClass(MyKeyComparator.class);
Run Code Online (Sandbox Code Playgroud)
您可以根据您的使用更改以下文本类型。
Text key1 = (Text) w1;
Text key2 = (Text) w2;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4191 次 |
| 最近记录: |