【发布时间】: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
假设我有一个 3 行的 RDD,如下所示
{(Sam, 23), 1}
{(Ram, 32), 5}
{(Dan, 25), 2}
第一列是一个元组,例如 (name, age)。在 Scala 中,如何仅根据第一列中的 name 字段对该 RDD 进行排序?同样如何根据年龄对这个RDD进行排序?
【问题讨论】:
标签: scala sorting apache-spark rdd
使用sortBy
val rdd : RDD[((String,Int),Int)] = ???
rdd.sortBy{case ((name,age),_) => name}
按年龄排序:
rdd.sortBy{case ((name,age),_) => age}
【讨论】:
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
【讨论】: