1. 程式人生 > >Spark 二次排序自定義key 實現(Java)

Spark 二次排序自定義key 實現(Java)

楔子

spark java版本的二次排序

實現

資料如下

2::4
2::10
3::6
1::5

按照 第一列 和第二列 倒敘排列 實現如下的結果

3::6
2::10
2::4
1::5

demo

GitHub 位置SecondarySortKey.javaSecondarySort.java

Spark中sortByKey實現運算元對資料的Key排序。二次排序需要自定義key值,在自定義key中實現排序的功能

排序使用了 Comparator進行排序 藉助了工具類CompareToBuilder()的方法,排序部分如下

@Override
public int compareTo(SecondarySortKey o) {
	// 此結果是正序排列
	return new CompareToBuilder().append(first, o.first).append(second, o.second).toComparison();
	// 1::5
	// 2::4
	// 2::10
	// 3::6
}

在這裡插入圖片描述