【问题标题】:Sort RDD based on a value in a tuple in Scala根据Scala中元组中的值对RDD进行排序
【发布时间】:2018-05-12 18:14:40
【问题描述】:

假设我有一个 3 行的 RDD,如下所示

{(Sam, 23), 1}
{(Ram, 32), 5}
{(Dan, 25), 2}

第一列是一个元组,例如 (name, age)。在 Scala 中,如何仅根据第一列中的 name 字段对该 RDD 进行排序?同样如何根据年龄对这个RDD进行排序?

【问题讨论】:

    标签: scala sorting apache-spark rdd


    【解决方案1】:

    使用sortBy

    val rdd : RDD[((String,Int),Int)] = ???
    
    rdd.sortBy{case ((name,age),_) => name}
    

    按年龄排序:

    rdd.sortBy{case ((name,age),_) => age}
    

    【讨论】:

      【解决方案2】:

      sparkContext.parallelize(Array( ("Sam", 23),("Ram", 32),("Dan", 25) )).sortBy(_._1)//If it's inverted order,input false ,If you pass the age _1 to _2 .foreach(println) enter image description here

      【讨论】:

        猜你喜欢
        • 2014-12-14
        • 2017-12-06
        • 2019-05-17
        • 1970-01-01
        • 2015-08-23
        • 1970-01-01
        • 2014-07-18
        • 1970-01-01
        • 2014-07-13
        相关资源
        最近更新 更多