• 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)]