Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Python 如何使用过滤器获取pyspark red中前5个最大值键_Python_Apache Spark_Pyspark - Fatal编程技术网

Python 如何使用过滤器获取pyspark red中前5个最大值键

Python 如何使用过滤器获取pyspark red中前5个最大值键,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,我在pyspark中有这种rdd,我想要最大值的前5个键 rdd.sort'column\u name',升序=False.5 希望这对您有所帮助如果您正在使用RDD,您可以对数据进行排序并获取前5个元素 Rdd=sc.parallelize([('a',1),('b',5),('c',3),('d',7),('e',10),('f',5),('g',9)]) 然而,这可能不是很有效,尤其是在大型RDD上。您可以使用一个简单的reduce >>> Rdd.sortBy(lam

我在pyspark中有这种rdd,我想要最大值的前5个键

rdd.sort'column\u name',升序=False.5


希望这对您有所帮助

如果您正在使用RDD,您可以对数据进行排序并获取前5个元素

Rdd=sc.parallelize([('a',1),('b',5),('c',3),('d',7),('e',10),('f',5),('g',9)])
然而,这可能不是很有效,尤其是在大型RDD上。您可以使用一个简单的reduce

>>> Rdd.sortBy(lambda x : - x[1]).take(5)
[('e', 10), ('g', 9), ('d', 7), ('f', 5), ('b', 5)]
这仍然不是最优的,因为这将产生相当多的对象创建,但已经比排序好得多

Rdd.map(lambda x: [x])\
   .reduce(lambda a,b: sorted(a + b, key = lambda x : - x[1])[:5] )