Spark中的Transformation和action算子

RDD中的所有转换都是延迟加载的,也就是说,他们并不会直接计算结果。相反的,他们只是记住这些应用到基础数据集(例如一个文件)上的转换动作。只有当发生一个要求返回结果给Driver的动作时,这些转换才会真正运行。这种设计让Spark更加有效率的运行。

常见的Transmation:

map(func) 返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成

filter(func) 返回一个新的RDD,该RDD由经过func函数计算后返回值为true的输入元素组成

flatMap(func) 类似于map,但是每一个输入元素可以被映射为0或多个输出元素(所以func应该返回一个队列而不是单一元素)

mapPartition(func) 类似于map,但独立地在RDD的每一个分片上运行,因此在类型为T的RDD上运行时,func的函数类型必须是Iterator[T]=>Iterator[U]

 

Action:

reduce(func) 通过func函数聚集RDD中的所有元素,这个功能必须是可交换且可并联的

collect()  在驱动程序中,以数组的形式返回数据集的所有元素

count()  返回RDD的元素个数

first() 返回RDD的第一个元素(类似于take(1))

take(n) 返回一个由数据集的前n个元素组成的数组

saveAsTextFile(path) 将数据集的元素以textfile的形式保存到HDFS文件系统或者其他支持的文件系统,对于每个元素,Spark将会调用toString方法,将它转化为文件中文本

foreach() 在数据集的每一个元素上,运行函数func进行更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值