【Spark的那些事儿】论RDD算子的重要性

Spark的那些事中前后文章关联比较紧密,没有阅读第一篇的可以关注公众号查找Spark的那些事RDD篇。

上一篇已经介绍完RDD结构。虽然RDD结构是spark设计思想最重要的组成,但是没有辅助的功能只有结构并不能独立使用。真正使RDD完成计算优化的,就是今天我们要讲到的spark RDD的另一个重要组成部分RDD算子。

  • RDD算子的定义

  • RDD算子在spark中的实现

  • RDD算子的分类

  • RDD算子的使用


RDD算子的定义

用来生成或处理RDD的方法叫做RDD算子。RDD算子就是一些方法,用来构建RDD及数据之间的关系。算子可以把数据转换成RDD,也可以由RDD产生新RDD,或者将RDD持久化到磁盘或内存。

从技术角度讲RDD算子可能比较枯燥,我们举个生活学习中的例子来类比RDD算子的作用。

完成计算需要什么呢?

需要数据载体和运算方式。数据载体可以是数字,数组,集合,分区,矩阵等。一个普通的计算器,它的运算单位是数字,而运算符号是加减乘除,这样就可以得到结果并输出了。一个矩阵通过加减乘除也可以得到结果,但是结果跟计算器的加减乘除一样吗?非也!

                           


矩阵相乘的运算法则:

AB的行数 = A的行数;AB的列数 = B的列数。

A与B的先后次序不能改变。

假设A是m行,B是n列。

AB的结果是一个m*n 大小的矩阵。

所以说加减乘除在不同的计算框架作用是不同的,而加减乘除这样的符号就是运算方式。在spark计算框架有自己的运算单位(RDD)和自己的运算符(RDD算子)。

可以理解为:RDD(或数据)算子 RDD 算子 = RDD(或数据)

 

是不是很抽象?下面来点具体的。

 

RDD算子在spark中的实现

Action算子的作用很单一,主要是整合数据,比如collect()返回RDD所有元素,count()返回RDD中元素的个数,当然其主要的作用是执行了runjob方法提交了作业。

下面我们主要分析一下Transformation RDD算子的源码结构:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值