我正在做一個hadoop項目,經過多次訪問各種博客和閱讀文檔後,我意識到我需要使用hadoop框架提供的secondry排序功能。Secondary排序Hadoop
我的輸入格式的形式爲:
DESC(String) Price(Integer) and some other Text
我想在減速值是降價格秩序。 同時比較DESC我有一個方法需要兩個字符串和一個百分比,如果兩個字符串之間的相似性等於或大於百分比,那麼我應該認爲它們是相等的。
問題是Reduce作業完成後我可以看到一些類似於其他字符串的DESC,但它們在不同的組中。
以下是分組的複合鍵
public int compareTo(VendorKey o) {
int result =-
result = compare(token, o.token, ":") >= percentage ? 0:1;
if (result == 0) {
return pid> o.pid ?-1: pid < o.pid ?1:0;
}
return result;
}
和比較的方法我compareTo方法比較
public int compare(WritableComparable a, WritableComparable b) {
VendorKey one = (VendorKey) a;
VendorKey two = (VendorKey) b;
int result = ClusterUtil.compare(one.getToken(), two.getToken(), ":") >= one.getPercentage() ? 0 : 1;
// if (result != 0)
// return two.getToken().compareTo(one.getToken());
return result;
}
修復了compareTo方法嗎? – aventurin