RDD触发算子:TopN算子(top算子、takeOrdered算子)

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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lzhlizihang

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值