PySpark实战:top操作-获取排名前N位
来自CloudWiki
介绍
top操作 是一个动作算子
它可以获取RDD中排序后的前n个元素
应用:解决大数据TopN问题,如销量最好的前5类产品等。
代码
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)) #top(N)首先降序排列,并获取前N个元素 #[99, 98, 97, 96, 95, 94, 93, 92, 91, 90] print(rdd.top(10)) #[4, 3, 20, 2, 10] print(sc.parallelize([10,20,3,4,2]).top(10,key=str)) ############################################## sc.stop() ~
- top操作可以接受另外一个参数key=str ,此时会按照字符串进行排序
输出
[99, 98, 97, 96, 95, 94, 93, 92, 91, 90]
[4, 3, 20, 2, 10]