Spark RDD的转换

RDD中的所有转换都是惰性的,只有当发生一个要求返回结果给Driver的动作时,这些转换才会真正运行。默认情况下,每一个转换过的RDD都会在它执行一个动作是被重新计算。可以使用persist(或者cache)方法,在内存中持久化一个RDD,在这种情况下,Spark将会在集群中保存相关元素,下次查询这个RDD时能更快访问它,也支持在磁盘上持久化数据集,或在集群间复制数据集。

RDD支持的转换操作:

1、map(func) :返回一个新的分布式数据集,该数据集由每一个输入元素经过func函数转换后组成。

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

3、flatMap(func) :类似于map,但是每一个输入元素可以被映射为0或多个输出元素(因此func应该返回一个序列,而不是单一元素组成)。

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

5、ample(withReplacement,fraction,seed):根据fraction指定的比例对数据进行采样,可以选择是否用随机数进行替换,seed用于指定随机数生成器种子。

6、union(otherDataset):返回一个新的数据集,新数据集是由源数据集和参数数据集联合而出。

7、distinct([numTasks]):返回一个包含源数据中所有不重复元素的新数据集。

8、groupByKey([numTasks]):在一个(K,V)对的数据集上调用,返回一个(K,Seq[V])对的数据集。注意  默认情况下,只有8个并行任务来操作,但是可以传入一个可选的numTasks参数改变它。

9、reduceByKey(func,[numTasks]):在一个(K,V)对的数据集上调用,返回一个(K,V)对的数据集,使用指定的reduce函数,将相同的key的值聚合到一起。与groupByKey类似,reduce任务的个数是可以通过第二个可选参数来设置的。

10、sortByKey([ascending],[numTasks]):在一个(K,V)对的数据集上调用,K必须实现Ordered接口,返回一个按照key进行排序的(K,V)对数据集。升序或降序由ascending布尔参数决定。

11、join(otherDataset,[numTasks]) :在类型为(K,V)和(K,W)类型的数据集上调用,返回一个相同key对应的所有元素对在一起的(K,(V,W))数据集

12、cogroup(otherDataset,[numTasks]):在类型为(K,V)和(K,W)的数据集上调用,返回一个(K,Seq[V],Seq[W])元组的数据集。这个操作也可以称为groupwith

13、cartesian(otherDataset):笛卡尔积,在类型为T和U类型的数据集上调用,返回一个(T,U)对数集(两两的元素对)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值