Hadoop 自定义比较器:按姓氏和名字排序
第一行:声明了一个名为 'com.mystudy.Hadooppp' 的包。 第二行和第三行:导入了两个类 'Text' 和 'WritableComparable',这两个类是 Hadoop 的核心数据类型。 第五行:定义了一个名为 'Comparator' 的类,它扩展了 'org.apache.hadoop.io.WritableComparator' 类。 第六行:定义了一个无参构造函数,它调用了父类的构造函数,并传入了 'Text.class' 和 'true' 作为参数。 第八行:重写了父类中的 'compare' 方法,并接受两个参数 'a' 和 'b',它们都是 'WritableComparable' 类型的。 第九行和第十行:将 'a' 和 'b' 转换为 'Text' 类型,并将它们分别赋值给 'aText' 和 'bText' 变量。 第十一行和第十二行:使用逗号将 'aText' 和 'bText' 转换为字符串数组,并将它们分别赋值给 'aFields' 和 'bFields' 变量。 第十三行和第十四行:将 'aFields' 和 'bFields' 中的第一个元素(即名字)分别赋值给 'aFirstName' 和 'bFirstName' 变量。 第十五行和第十六行:将 'aFields' 和 'bFields' 中的第二个元素(即姓氏)分别赋值给 'aLastName' 和 'bLastName' 变量。 第十八行:比较 'bFirstName' 和 'aFirstName' 的字典序,并将结果赋值给 'firstNameCompareResult' 变量。 第十九行:如果 'firstNameCompareResult' 不等于 0,直接返回 'firstNameCompareResult'。 第二十行和第二十一行:如果 'firstNameCompareResult' 等于 0,则比较 'bLastName' 和 'aLastName' 的字典序,并返回比较结果。
原文地址: https://www.cveoy.top/t/topic/oJW8 著作权归作者所有。请勿转载和采集!