Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何在spark rdd中获得最大值并将其删除?_Apache Spark - Fatal编程技术网

Apache spark 如何在spark rdd中获得最大值并将其删除?

Apache spark 如何在spark rdd中获得最大值并将其删除?,apache-spark,Apache Spark,有一个RDD对象: //have some data in RDD[(Int, Int)] object (1, 2) (3, 2) (2, 3) (5, 4) (2, 7) (5, 2) (5, 7) 我想获得max key并将其删除,max key是5,因此我想要的结果是: //a new RDD object,RDD[(Int, Int)] (1, 2) (3, 2) (2, 3) (2, 7) 你能帮我吗?谢谢大家! 首先需要对结果进行排序,然后使用RDD.max()获得最高值,最后

有一个RDD对象:

//have some data in RDD[(Int, Int)] object
(1, 2)
(3, 2)
(2, 3)
(5, 4)
(2, 7)
(5, 2)
(5, 7)
我想获得max key并将其删除,max key是5,因此我想要的结果是:

//a new RDD object,RDD[(Int, Int)]
(1, 2)
(3, 2)
(2, 3)
(2, 7)

你能帮我吗?谢谢大家!

首先需要对结果进行排序,然后使用
RDD.max()
获得最高值,最后执行
filter
过滤除最高键以外的键


您还可以将其注册为
DataFrame
,并执行简单的SQL查询以获得结果。

在使用
max
@MateuszDymczyk之前,您无需对RDD进行排序-感谢您的更正。您是对的,在使用max时,我们不需要任何排序。排序是在
max
中隐式执行的。实际上,不需要在任何地方执行排序,因为它没有必要且速度较慢(在最佳情况下为nlogn)。您可以使用一个排序函数简单地减少整个RDD,该函数是linear@Sumit我可以在spark streaming中使用max()函数吗?
max()
可与RDD API一起使用,因此在streaming中,您需要执行
Dstream.foreachRDD
,然后对于每个RDD,您可以使用
max
函数。