PySpark实战:takeOrdered操作
来自CloudWiki
介绍
takeOrdered操作是一个变换算子,
它的作用是从RDD中获取排序后的前num个元素构成的RDD
默认按照升序排,但是也支持用可选函数进行指定。
此操作可适用于相关的TopN问题。
代码
import findspark findspark.init() ############################################## from pyspark.sql import SparkSession spark = SparkSession.builder \ .master("local[1]") \ .appName("RDD Demo") \ .getOrCreate(); sc = spark.sparkContext ############################################# rdd =sc.parallelize(range(2,100)) #[2, 3, 4, 5, 6, 7, 8, 9, 10, 11] print(rdd.takeOrdered(10)) #[99, 98, 97, 96, 95, 94, 93, 92, 91, 90] print(rdd.takeOrdered(10, key=lambda x: -x)) ############################################## sc.stop()
输出
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[99, 98, 97, 96, 95, 94, 93, 92, 91, 90]