scala - spark RDD 按两个值排序

标签 scala sorting apache-spark rdd

我有一个 RDD(name:String, popularity:Int, rank:Int) .我想按 rank 排序如果 rank然后匹配 popularity .我通过两个转换来做到这一点。

var result = myRDD
        .sortBy(_._2, ascending = false)
        .sortBy(_._3, ascending = false)
        .take(10)

我可以在一次转换中完成吗?

最佳答案

您可以尝试制作 RDD键值为Tuple的键值由 rank 组成和 popularity值将是 name并按键排序。

例如:

// _._1 - name

// _._2 - popularity

// _._3 - rank


var tupledRDD = myRDD.map(line => ((line._3, line._2), line._1))
.sortBy(_._1, ascending=false)
.take(10)

关于scala - spark RDD 按两个值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36963319/

相关文章:

scala insert to redis 给出任务不可序列化

scala - 调整 SBT 性能

scala - 我什么时候应该在 scala 中使用类型级别计算?

java - 如何比较列表中的两个整数?

scala - Spark 读取具有自动分区发现的多条路径

scala - 使用shapeless scala合并两个不同case类的字段

Java 8 高级排序

c++ - 具有自定义排序的 C++ 映射中的唯一索引

java - 如何在 java 中创建动态 Seq<Column>

scala - pyspark 与 scala 中的 FPgrowth 计算关联