- first() 算子
- 格式: first()
- 说明: 获取第一个元素
rdd = sc.parallelize([1,2,3,4,5,6,7,8,9,10])
rdd.first()
结果: 1
- take() 算子
- 格式: take(N)
- 说明: 获取前N个元素, 类似于 limit操作
rdd = sc.parallelize([1,2,3,4,5,6,7,8,9,10])
rdd.take(5)
结果: [1,2,3,4,5]
- top算子:
- 格式: top(N, [fn])
- 说明: 对数据集进行倒序排序操作. 如果是kv类型, 默认是针对key进行排序 获取前N个元素
- fn: 可以自定义排序, 用于指定根据谁来排序
rdd = sc.parallelize([1,2,9,10,3,4,8,5,6,7])
rdd.top(3)
结果:
[10, 9, 8]
rdd = sc.parallelize([('c05','张三'),('c02','李四'),('c07','王五'),('c01','赵六'),('c03','田七'),('c08','周八'),('c04','李九')])
rdd.top(3)
结果:
[('c08', '周八'), ('c07', '王五'), ('c05', '张三')]
rdd = sc.parallelize([('c05',5),('c02',9),('c07',12),('c01',11),('c03',17),('c08',16),('c04',13)])
根据value进行排序, 获取前三个
rdd.top(3,lambda kv: kv[1])
结果:
[('c03', 17), ('c08', 16), ('c04', 13)]