(六)Spark源码理解之RDD----part4

3.2 动作

Spark中也有相应的动作函数,这些动作即可生成我们所需的最终结果,也是因为这些动作才真正触发了Spark的调度

3.2.1 foreach

foreach()函数是对RDD中的每个元素调用函数,结果为Unit,即空类型

如:

val disData1=sc.parallelize(Array(1,2,3,4),2)

d.foreach(println)

结果:1,2,3,4

3.2.2 collect

collect()函数在上面已经提到过,就是将RDD的所有元素转换为一个数组

例子就不单独贴出来了,上面的许多例子中已有

3.2.3 reduce

reduce()函数是Spark中用到最多的函数,它通常将RDD中的元素按照一定的函数进行整合,从而减少元素,最终的结果为特定类型的元素,它调用的函数通常有两个输入参数

如:

val disData1=sc.parallelize(Array(1,2,3,4),2)

val d=disData1.reduce((a,b)=>a+b)

结果:d=10

3.2.4 fold & aggregate

这两个动作应该是对数据进行聚合,至于具体的操作我也搞不懂,鉴于它不常用,就先放着吧

3.2.5 count

count()函数统计RDD中元素的个数,结果是一个Long型的整数

如:

val disData1=sc.parallelize(Array(1,2,3,4),2)

    val d=disData1.count

结果:d=4

3.2.6 take

take(n)函数从RDD中的第一个分区开始依次取出n个元素,结果返回一个数组,存放取出的元素

如:

val disData1=sc.parallelize(Array(1,2,3,4),2)

val d=disData1.take(3)

结果:d=Array(1,2,3)

感觉它与之前提到过的takeSample()作用类似,都是取元素,不过take并未用到样本选取器

3.2.7 max & min

max()和min()函数返回RDD中最大和最小的元素

如:

val disData1=sc.parallelize(Array(1,2,3,4),2)

val d=disData1.max

结果:d=4

如:

val disData1=sc.parallelize(Array(1,2,3,4),2)

val d=disData1.min

结果:d=1

3.2.8 saveAsTextFile

saveAsTextFile()函数将RDD存储在指定路径下,它会生成一个文件,文件中有各个分区的结果所组成的crc文件

未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值