首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何对RDD.takeOrdered()进行反向排序?

如何对RDD.takeOrdered()进行反向排序?
EN

Stack Overflow用户
提问于 2014-10-16 00:43:42
回答 3查看 18.7K关注 0票数 14

在Spark中颠倒RDD的takeOrdered()方法的顺序的语法是什么?

对于奖励积分,在Spark中对RDD进行自定义排序的语法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-16 18:02:20

逆序

代码语言:javascript
运行
复制
val seq = Seq(3,9,2,3,5,4)
val rdd = sc.parallelize(seq,2)
rdd.takeOrdered(2)(Ordering[Int].reverse)

结果将是Array(9,5)

自定义订单

我们将按年龄对人进行排序。

代码语言:javascript
运行
复制
case class Person(name:String, age:Int)
val people = Array(Person("bob", 30), Person("ann", 32), Person("carl", 19))
val rdd = sc.parallelize(people,2)
rdd.takeOrdered(1)(Ordering[Int].reverse.on(x=>x.age))

结果将是数组(Person(ann,32))

票数 29
EN

Stack Overflow用户

发布于 2016-02-01 14:20:06

代码语言:javascript
运行
复制
val rdd1 = sc.parallelize(List(("Hadoop PIG Hive"), ("Hive PIG PIG Hadoop"), ("Hadoop Hadoop Hadoop")))

val rdd2 = rdd1.flatMap(x => x.split(" ")).map(x => (x,1))

val rdd3 = rdd2.reduceByKey((x,y) => (x+y))

//逆序(降序)

代码语言:javascript
运行
复制
rdd3.takeOrdered(3)(Ordering[Int].reverse.on(x=>x._2))

输出:

代码语言:javascript
运行
复制
res0: Array[(String, Int)] = Array((Hadoop,5), (PIG,3), (Hive,2))

//升序

代码语言:javascript
运行
复制
rdd3.takeOrdered(3)(Ordering[Int].on(x=>x._2))

输出:

代码语言:javascript
运行
复制
res1: Array[(String, Int)] = Array((Hive,2), (PIG,3), (Hadoop,5))
票数 8
EN

Stack Overflow用户

发布于 2021-02-28 17:21:14

对于K,V对的字数类型的问题。如果你想从你的有序列表中得到最后10个-

代码语言:javascript
运行
复制
SparkContext().parallelize(wordCounts.takeOrdered(10, lambda pair: -pair[1]))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26387753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档