《Spark 5》--RDD 的 行动操作

本文详细介绍了Spark中RDD的行动操作,包括first(), count(), reduce(), collect(), take(), top(), takeOrdered(), sortBy(), foreach()以及aggregate()和fold()。重点讨论了这些操作的惰性求值特性、触发Job的条件,以及在不同模式下的行为差异,同时通过实例演示了如何使用这些操作进行数据处理和聚合。" 46865201,2865447,ArcGIS影像分类:最大似然法与监督、非监督分类,"['GIS', 'ArcGIS教程', '分类算法', '遥感']
摘要由CSDN通过智能技术生成

行动操作:

  惰性求值:【RDD的特性】
-------------------------------------------------------------------------------------------------------------------
    在RDD行动操作之前,不触发计算。转换操作和创建操作、控制操作均为惰性的;
    只有行动操作可触发Job。

-------------------------------------------------------------------------------------------------------------

    定义:触发Job,调用runJob()方法:
    比如:collect、count
       
    1.first():T 表示返回RDD中的第一个元素,不排序
    2.count(): Long表示返回RDD中的元素个数
    3.reduce(f:(T,T)=>T):T根据映射函数f,对RDD中的元素进地二元计算
    4.collect():Array[T]表示将RDD转换成数组
    
    5.take(num:Int)Array[T]表示获取RDD中从0到num-1下标的元素,不排序

 scala> var rdd1 = sc.makeRDD(Seq(10,4,3,12,3))
   rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[4] at makeRDD at 
   <console>:24

 scala> rdd1.take(1)
   res7: Array[Int] = Array(10)

    6.top(num:Int)Array[T]表示从RDD中,按照默认(降序)或者指定的排序规则,返回前num个元素
    scala> rdd1.top(3)
    res8: Array[Int] = Array(12, 10, 4)                                             

    7.takeOrdered(num:Int):Array[T]和top类似,只不过以和top相反的顺序返回元素
    scala> rdd1.takeOrdered(3)
    res9: Array[Int] = Array(3, 3, 4)
    
    8.sortBy[K](f:(T))=>K 定义RDD为键值类型
    scala> var rdd1 = sc.makeRDD(Array(("A",2),("A",1),("B",6),("B",3),("B",7)))
    rdd1: org.apache.spark.rdd.RDD[(String, Int)] = ParallelCollectionRDD[7] at makeRDD at <console>:24
    
    按照键值升序
    scala> rdd1.sortBy(x=>x).collect
    res10: Array[(String, Int)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值