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
}

Spark 二次排序自定义key 实现(Java)