Skip to main content
 首页 » 编程设计

python之takeOrdered 函数中的 lambda 函数如何在 pySpark 中工作

2025年05月04日55fff_TT

我不太明白以下代码中 lambda 的行为:

rdd = sc.parallelize([5,3,1,2)] 
rdd.takeOrdered(3,lambda s: -1*s) 

据我所知,lambda 对列表中的所有元素应用了一个操作,所以我希望上面的代码能够返回

[-1,-2,-3] 

但它回来了

[5,3,2] 

我在这里错过了什么?

请您参考如下方法:

https://spark.apache.org/docs/1.1.1/api/python/pyspark.rdd.RDD-class.html

takeOrdered(self, num, key=None) Get the N elements from a RDD ordered in ascending order or as specified by the optional key function.

因此在您的示例中,您提供了一个订购功能。