TopN算子
top算子
功能
对RDD中的所有元素降序排序,并返回前N个元素,即返回RDD中最大的前N个元数据
特点:不经过Shuffle
,将所有元素放入Driver内存中排序,性能更好,只能适合处理小数据量
语法
def top(self,num) -> List[0]
举例
如何构造sc对象并创建RDD 参考文章:
【Spark中创建RDD的两种方式】Spark中如何获取sc对象、以及创建RDD的两种方式
list01 = [1, 5, 2, 6, 9, 10, 4, 3, 8, 7]
rdd = sc.parallelize(list01)
# top 是一个触发算子,不返回rdd类型
# 对于触发算子的结果,一般不返回rdd,而是一个正常的返回值,使用print 打印即可
print(rdd.top(3)) # 输出结果为 [10,9,8]
takeOrdered
功能
对RDD中的所有元素升序排序,并返回前N个元素,即返回RDD中最小的前N个元数据
特点:不经过Shuffle
,将所有元素放入Driver内存中排序,只适合处理小数据量
语法:
def takeOrdered(self,num) -> List[0]
举例:
list01 = [1, 5, 2, 6, 9, 10, 4, 3, 8, 7]
rdd = sc.parallelize(list01)
# top 是一个触发算子,不返回rdd类型
# 对于触发算子的结果,一般不返回rdd,而是一个正常的返回值,使用print 打印即可
print(rdd.takeOrdered(3)) # 输出结果为 [1,2,3]