订购RDD [String]

时间:2015-05-29 21:41:26

标签: scala apache-spark

考虑

curl http://localhost/test-cron-job

我想订购这个RDD。我是Scala的新手,对如何做到这一点感到有些困惑。

1 个答案:

答案 0 :(得分:6)

可以找到RDD文档here。看看sortBy

sortBy[K](
  f: (T) ⇒ K, 
  ascending: Boolean = true, 
  numPartitions: Int = this.partitions.size
)

K是您要排序的RDD片段的类型。 f是一个函数,您可以使用def在其他位置定义并按名称传递它,也可以在行中匿名创建一个函数(更像scala)。 ascendingnumPartitions应该是自我解释的。

所以考虑到这一切,试试:

rdd.sortBy[String]({animal => animal})

然后试试这个:

rdd.sortBy[String]({animal => animal}, false)

然后这个,将RDD按动物名称中的字母“e”的数量从最多到最少排序:

rdd.sortBy[Int]({a => a.split("").filter(char => char == "e").size}, false)

应该注意原始的rdd没有排序 - 操作返回一个新的,排序的RDD。