加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 订购RDD [String]

发布时间:2020-12-16 18:56:22 所属栏目:安全 来源:网络整理
导读:考虑 val animals = List("penguin","ferret","cat").toSeqval rdd = sc.makeRDD(animals,1) 我想订购这个RDD.我是Scala的新手,对于如何做到这一点感到有些困惑. 解决方法 可以在 here找到RDD文档.查看sortBy: sortBy[K]( f: (T) ? K,ascending: Boolean =
考虑

val animals = List("penguin","ferret","cat").toSeq
val rdd = sc.makeRDD(animals,1)

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

解决方法

可以在 here找到RDD文档.查看sortBy:

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

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

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

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读