में मैं एक Hadoop परियोजना पर और विभिन्न ब्लॉगों के लिए कई यात्रा के बाद काम कर रहा हूँ और प्रलेखन पढ़ने, मुझे एहसास हुआ कि मैं Hadoop ढांचे द्वारा प्रदान की secondry तरह सुविधा का उपयोग करने की जरूरत है।माध्यमिक क्रमबद्ध Hadoop
मेरे इनपुट प्रारूप फार्म की है:
DESC(String) Price(Integer) and some other Text
मैं कम करने में मानों मूल्य के अवरोही क्रम होना चाहता हूँ। डीईएससी की तुलना करते समय मेरे पास एक विधि है जो दो तार और प्रतिशत लेती है और यदि दोनों तारों के बीच समानता बराबर होती है या प्रतिशत से अधिक है तो मुझे उन्हें बराबर मानना चाहिए।
समस्या के बाद कम नौकरी समाप्त हो गया है मैं कुछ 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;
}
तुलना को ठीक करने के लिए विधि आपके लिए काम करता है? – aventurin