spark-获取RDD的方式以及从分区中获益的操作

本文介绍如何利用Spark的partitioner对象来提升数据处理性能,详细解释了isDefined与get方法的应用,并列举了能从分区中受益的多种操作如cogroup、groupWith、join等。

Spark获取RDD的分区方式:

使用partitioner对象,本质上是告诉我们RDD中各个健分别属于哪个分区。

isDefined:用来判断该对象是不是有值

Get:使用get来获取其中的值

date.partitioner.isDefined

date.partitioner.get

Spark从分区中获益的操作:

Spark有许多算子都是要跨节点进行通信的。

所以这些算子如果使用分区的话,都可以很大程度上提高性能和效率。

这些操作都有:

(cogroup,groupWith,join,leftOutJoin,rightOutJoin,groupByKey,reduceByKey,combintByKey,lookup)

reduceByKey:对于像reduceByKey这样只作用于单个RDD的操作来说,运行在未分区的RDD上的时候会导致每个健的所有对应值都在每台机器上进行本地计算,只需要把本地最终计算的结果值,从各个节点上传到主节点,所以原本的网络通信开销就不大。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值