import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.RDD
case class SecondSortKey(first: Int, second: Int) extends Ordered[SecondSortKey] {
override def compare(that: SecondSortKey): Int = {
if (this.first == that.first) {
this.second - that.second
} else {
this.first - that.first
}
}
}
object SecondSort {
def main(args: Array[String]): Unit = {
val context: SparkContext = new SparkContext(new SparkConf()
.setAppName("second sort")
.setMaster("local"))
val lines: RDD[String] = context.textFile("T:/code/spark_scala/data/secondSort.txt")
lines.map(line => {
(SecondSortKey(
line.split(" ")(0).toInt,
line.split(" ")(1).toInt), line)
}).sortByKey()
.map(_._2)
.foreach(println)
}
}
Spark二次排序简单实现
最新推荐文章于 2024-04-18 19:56:28 发布
本文介绍如何使用Apache Spark进行二次排序,通过定义自定义排序类`SecondSortKey`来实现复杂数据结构的排序需求。该文详细展示了从创建SparkContext到读取文件、解析数据并进行排序的全过程。

1186

被折叠的 条评论
为什么被折叠?



