00:00
嗯,我们刚才给大家讲完了,我们的这个宽依赖和窄依赖啊,大概的一个概念呢,给大家说了一下啊,那么接下来我们说一下它的作用是什么,这个呢,其实跟我们执行的任务有一定的关系,呃,咱比方说咱们这个窄依赖啊,这个窄依赖啊,咱们说一下这个窄依赖怎么去理解呢?这个呢,咱们来说一下,比方说大家想想我现在呢,就好比我们小时候啊,去那个春游啊,比方说我们有两个班级啊,一个是一班,一个是二班,对不对,那好比好比呢,这就是我们一班,这就是我们一班好了,然后呢,这个呢是我们的二班,对不对,二班,然后呢,我们的春游啊,我们的每个班级啊,自己组织自己的这个学生呢,去春游去对不对,就是一年一班,他们自己去哪玩去哪玩对不对,那我们二班去别地方玩去,所以说大家有没有发现他们的这个班级当中啊,比方说诶,我的一班先去了第一个景点。然后呢,我们需要等待二班吗?不需要,因为你们的景点都不一样,那么所以呢,我的一班去完的某一个节点之后,是不是直接可以去下一个节点呢?对不对?去下面一个景点的话,不需要等待二班呢?所以他们其实班主任只需要管这一个就够了啊,管这一个班级就够了,对不对?他不需要管很多的班呢?所以这两个班其实就是个整体,这两个景点呢,就是一个班的一个整体操作,所以他们根本就不需要等待其他班级。同样道理,二班。
01:25
也是一样的啊,放到这边,放到这边以后,当我参观完第一个景点之后,二班谁也不需要等待,只要自己班的人齐了,是不是直接就走下一个景点了,也不需要等待,所以他们的老师只需要管他们自己就够了。所以在这种情况下,大家会发现,我们的老师他只需要管自己的话,一班的老师管他自己,二班的老师管他自己,不管你去哪个景点,只需要管自己就够了。那么在这种情况下,大家想想,我们是不是只需要两个我们的task就够了呀?诶,两个任务为什么呢?我们只需要两个计算就可以完成操作,先走它,再走它不就OK了吗?同样道理,诶,把这个放过来,那么我们这两个呢,给它一个蓝色,所以呢,我们的箭头,诶,我们指向我们的这个地方对不对,诶就是这样啊,好放到这边,然后这边呢,给它放到这边,诶就是这样,所以啊,我们的这种我们所谓的one to one,我们的这个窄依赖它的这个分区,你不要看他说诶老师你看这有两个分区,这有两个分区其实最。
02:26
其中只需要两个task就可以执行了,只不过有先有后嘛,这个task先计算它,再计算它对不对,没问题,这个task呢,先计算它,再计算它有一个顺序就够了,他不需要有四个任务,说诶老师先把这个任务先结束了吧,再去什么执行这个任务不需要啊,为什么呢?因为一个就够,那好,这是我们所谓的窄一赖,它的分区和任务的一个关系,那我们接下来再看我们的这个我们的宽一赖,这个宽一赖呢,就跟我们有点不太一样,咱们还拿这个,诶春游举例子啊,来咱们拷贝,拷贝以后咱们放过来,我现在这个春游啊,本身还是我们的一班和二班,但是呢,他们不同的景点呢,是确实需要参观的,但是最后呢,干嘛呢,他们要汇总到一个统一的节点来做一些爱国的教育,比方说我们快要到11了,对不对?他们可能统一的要做一个爱国教育,就是你不管去哪个地方玩了,你最终在某个节点当中,某个时间点,你应该汇总到一块儿去。所以。
03:26
大家看一下。这个时候啊,就意味着我们应该汇总到一个我们的节点当中去,对不对,诶就是这样的啊,OK,然后呢,反过来啊,反过来这个时候呢,要把他们的数据给他汇总了,或者呢,咱比方说诶呃,有的同学呢,去我们的,咱举个例子,比方说去天安门啊,有的同学呢,可能去一些烈士陵园,所以呢,他会把这个同学呢做一个分类,去不同的地方做我们的什么一个爱国主义教育,所以呢,这个班级啊就被打乱了,他可能就不是说以一班和二班了,他可能是什么呢?就是我们的一个景点了啊,比方说咱们这里写上嗯。
04:00
啊,咱们叫做什么呢?叫天安门,咱们举个例子啊,然后这边呢,我们就写上啊,咱们写上咱们叫烈士陵园啊,诶就是这样的,所以呢,那么我们的这个人员就会被打散,比方说我们的诶这两个学生呢,他就干嘛呢,想去我们的天安门对不对,诶就是这样,然后呢,我们这样的话,他诶就放到这儿来了,所以呢,我们就放到这个地方,OK好了,那么所以我们的这个诶我们的学生啊,他的不同班级的学生就被打乱重新组合了,这个是不是感觉就是那个杀父的操作呀,对不对,诶就是这个意思,那我问同学们,这个时候我们光靠两个老师好像就不够了吧,为什么这么说呢?因为。我们一班的班主任他只管一班的,二班的班主任只管二班的,但是当你打散之后,你去天安门之后,这个你说拿一班的其实好像不是很合适,为什么呢?因为他有二班的学生啊,不认识你对不对,而这边呢,可能是什么呢?二班的,但是你的一班他又不认识,所以这样的话,数据被打散之后,你的老师是不是也可能会跟着换,所以啊,咱们的任务诶就不能够什么啊,是像之前一样,之前呢是因为是一个班的一个老师就够了,那么这样的话,先去这个景点,再去这个景点没有任何问题,但现在呢,我们去了一个景点之后,诶,到了最终的这个地方需要换老师了,那换老师的话,那其实就等于任务就发生了改变,对不对,所以大家会发现,在这个场合下,我们有点问题了。
05:22
咱们在前面他应该是由一个班主任来进行一个操作,对不对,他来负责我们的学生的管理嘛,然后呢,到了我们天安门可能就换换一个另外一个老师了,这个老师啊,可能是教务主任啊,对吧,或者是校长之类的,他们要对整个班级的学,就是不同的班级学生都更了解,对吧,一个年级的同样道理,大家看一下我们的这个task,诶反过来,诶反过来对不对?所以说你会发现呢,我们前面的这个应该会有不同的老师,这就是不同的任务,而后面呢,也有不同的老师,也有不同的任务啊,所以说大家会发现我们的task的数量就增加了。啊,默认情况下它应该是什么呢?一半一半就是前面两个,后面两个应该跟这个有关系,对不对,所以跟我们之前的这个窄依赖的效果就完全不一样。
06:09
还有一个问题,什么问题呢?大家想想,我们说了,我们一班和二班啊,我们现在呢,要汇总在一块儿,去天安门或者去历烈士陵园,那我就问你这个一一号学生,他要去天安门,他能够说不等三号吗?不能吧,他是不是他们的这个一班和二班应该汇总在一块儿,然后呢,把那个去不同景点的这个学生给他筛选出来,那所以说我们的这个就应该分不同的阶段,所以大家可以看到我们在这个位置。啊,放过来啊,放过来,然后放到这边,就意味着咱们要把我们当前的一个过程呢,分成几段几段的啊方便管理嘛,那就意味着我们在这一边,我必须要保证我的一班和二班他的所有的景点都参观完了,然后汇总在一起之后,我们再能够去我们的天安门或者烈士陵园,对不对,那么这个时候诶才会往下进行,如果你说了,诶,我的一班把景点参观完了,但是呢,二班还没有参观完,我马上就给他去分了,那就不行了,对不对,那这样的话就麻烦了,所以必须是一班和二班他们的这个学生都已经把所有的景点参观完了,那才可以,所以啊这个就比较特殊,他就分阶段。
07:20
这个阶段啊,就这一段啊,它全都景点啊,全都什么呢?完了,比方说两点钟啊,我们的所有景点要传关闭,两点钟之后咱们要去天安门或者去烈士陵园,这个两点钟就是一个时间节点,对不对,诶在这个时间节点我们是一段啊,这是一段,两点之后就是我们下一段了,所以我们其实还有下一个阶段,对不对,诶下一阶段它会分不同的阶段啊,把这个时间点,所以这是我们的他啊。所以阿,这看着不舒服,是不是有一个别的颜色嘛,比方说换一个这个颜色呢,哎,也可以啊,诶,所以啊,他会把咱们的这个操作呢,分成几段几段,诶所以咱们在这里呢,首先咱们要说一下,就是分区和task的关系,也要简单的介绍一下咱们阶段的概念啊,但是我们刚才举的例子呢,其实啊是什么呢?是我们的一个就是春游啊,就是咱们这个例子呢,其实可能举得也不太好,但是大家稍微的理解一下,就是为什么要分阶段,为什么这个task的数量要发生变化啊,其实主要原因就是因为它的实现方式有了区别,好吧,同学们来这个稍微的理解一下,然后呢,课件当中咱们往下看。
08:24
它的这个地方就告诉你了啊,咱们的RDD它分几个阶段,那么它的阶段呢,大家会发现,就是在我们有向无环图当中可以看到它不同的阶段,有的是一个完整的阶段,有的是分成了好几个阶段,那么看什么?其实你回过头来看我们刚才画的图,其实如果呀,你要是什么呢?One to one1对一的话,你需要划分阶段嘛,不需要,为什么呢?因为走完它再走它,我们大家不谁都不用等谁,那就不用划分阶段了,对不对?诶,你就玩你的呗,比方说你到了我们的,呃,比方说去那个我们的那个动物园啊,你玩到了一点,那么一点钟你玩完了以后就去下一个什么游乐园去玩就完事了,对不对,不需要一个阶段固定的时间点在那儿,那是不需要,为什么不需要等别人嘛,但是呢,如果是往下就不行了,为什么呢?因为我们有好几个班级要去不同的地方,那这样的话,你必须规定个时间,比方说两点钟必须到这儿,对吧,我们汇合,然后呢去分到不同地方,所以这就是一个段儿啊,一个阶段,所以这是非常重要的,那这个就是因为什么呢?有。
09:25
杀否要打乱重新组合了,那你得等别人,你等别人的话,那不就要划分阶段嘛,所以啊,咱们等别人的话,就意味着要有杀否,所以杀否和这个阶段有必然的关系,好吧,同学们,咱们先了解一下啊。
我来说两句