00:00
好了,同学们,我们前面呢把RDD呢创建出来了,不管我们是从内存中还是从我们的文件当中,我们把RDD构建出来,那么我们接下来呢,讲一讲这个RDD数据模型对象啊,它里面的一些方法,嗯,它的常用方法呀,我们一般会分为两大类啊,这个咱们一块来看一看,呃,首先我们写上叫RDD啊咱们的方法,嗯,它的方法很多啊,很多,那么我们分两大类,呃,分为哪两大类呢?咱们一块来看一看,放到这边。好,把这个呢,我们去掉啊,咱们这边去掉,嗯,放到这边来。好了,那么第一类呢,是用来做转换的啊,咱们说一下,咱们叫做转换啊,咱们转换还有一个我们称之为叫做行动啊,咱们称之为叫做行动,这个是什么意思呢?什么叫做转换,什么叫做行动呢?这里咱们说一下啊,所谓的转换其实啊,它就是我们功能的补充,咱们前面给大家讲了,我们的这个计算逻辑它是不可变的,那如果你想要封装更加复杂的逻辑的话,你需要产生多个RDD对不对,将RDD呢进行封装,那么这个时候你把一个旧的RDD变成一个新的RDD的这种操作,我们就称之为叫转换啊,所以呢,我们所谓的转换呢,就是把一个旧的R给它包装成一个新的RD,诶,就是这个意思,回过头来,大家看一下我们的这个地方来这个RDD。
01:33
啊,它就可以转换成它,为什么呢,被它包进去了,同样道理,这个绿色的RDD就可以被什么包装成我们蓝色的RDD,那么就属于转换,转换成它,还有我们变成紫色的RD,这也算是一种转换啊,所以所谓的转换呢,就是功能的补充和封装啊,来和封装,那么说的简单点呢,就是将将我们旧的RDD包装成啊,咱们叫包装成我们叫新的RDD,哎,这个就称之为叫转换的方法啊,这是一个分类,那什么叫行动呢?你光转换的话,你最后的执行啊,对不对,在我们的这个地方,你得触发咱们的这个task的执行和调度啊,你光转换来转换去的,你最后不执行吗?就还得执行对不对?所以所谓的行动它的方法呢,就意味着它会触发我们的作业的执行啊,所以它会触发咱们的任务的调度和我们的作业的执。
02:33
大家会明显的发现,我们这是两个不同的分类,第一个分类呢,就是用来做封装用的,诶把功能呢,在不断的补全,给它扩大,对不对?而我们的行动的方法呢,哎,我们一般干嘛呢,就是用来做哎触发作业执行的操作,所以啊,这是两大不同的分类,那咱们举个例子吧,啊,咱们分别的举几个例子,比方说咱们之前给大家看到了啊,大家咱们看到了,在咱们之前是不是有一个叫做flight map吧,还有那个叫map吧,这些flight map和map。
03:07
它会让整个程序执行吗?它不会的,我们前面讲了,它只是一种封装,对不对?它不会的,那这个就是将旧的变成新的,这个就是我们所谓的转换的方法,那好,那什么叫行动呢?比方说咱们之前讲过一个叫collect。这个方法呢,它会促使整个的我们的作业开始执行,还记得吗?不加collect其实是执行不了的啊,这个呢,我们给大家演示一下来,嗯,把这个咱们都关掉啊,咱们都关掉,关掉以后咱们打开这个word count,然后呢,干什么呢?我把这个collect,把这个都给它掉。把它都掉注掉以后,我们这里还是有map,还是有group,还是有Fla map,但是我们看看运行的结果来运行,运行以后你会发现整个的作业,整个的应用程序根本就不会执行,为什么?因为它没有触发作业的执行,它只是一层一层的包装,这就感觉跟咱们那个IO流一样,你只是不断的去拗,不断的去拗,你没有调用什么方法,大家看一下有东西吗?没有任何的东西,但是如果你加上咱们的这个collect,诶,加上它。
04:21
咱们这都什么,咱们这个地方还得把它来啊,打印一下,然后呢,我们再来。你这个时候才会真正的触发它的执行啊,是这样的,所以这个呢,我们要了解一下啊,就是首先我们得明白我们的collect方法,它的作用是什么样子的啊,它其实就是触发咱们整个作业的执行,所以这个就是行动的方法,但是啊,我们把它叫做方法呀,你会发现什么flat map呀,Map啊,感觉跟我们该集合的方法是不是非常类似呀,包括咱们集合当就该集合当中还有一个叫collect吧,所以在这种情况下呀,我们有的时候为了区分,我们把这个RDD的方法有另外一个称呼,称之为什么呢?叫做算子。
05:08
所以啊,我们说一下啊,来我们说一下,咱们叫做什么呢?叫做算子。把这个呢,RDD的方法称之为叫RDD的算子啊,咱们叫RDD算子,但是很奇怪,为什么把它称之为叫算子呀,你就说叫方法不挺好的嘛,是吧,转换方法,行动方法对不对?诶,但是不一样,那我们这里解释一下,什么叫做我们的算子,怎么去体会它这个呢?要从我们的另外的一个学科开始给大家讲起了,那这里呢,我们说一下,比方说我们要从认知心理学啊来,咱们叫认知心理学。解决问题啊,解决问题其实就是将啊,就是将我们问题的状态进行改变啊,改变啊什么意思呢?比方说我们的问题它的初始状态啊,就是我们的初始对不对,然后呢,我们通过一系列的操作,比方说我进行一系列的操作,然后呢,改变了它的状态,诶所以问题它的状态,比方说啊,我们举个例子啊,比方说叫审核中,对吧?诶就是这样的,然后呢,最后再经过一系列的操作,诶比方说我们写上叫完成,咱们叫文题,咱们叫完成,所以啊,这是我们状态改变了,最后变成完成状态了,那这个问题不就解决了吗?所以啊,就是在我们的认知心理学角度来讲的话,他是这么来考虑问题的啊,他把我们的问题的状态进行考虑,然后呢,我们这里的操作呀,被称之为叫算子啊,同学们就是我们是用算子的方式来改变咱们。
06:44
问题的状态,所以在认知心理学算子是这么来的啊,算这么来的,可是呢,如果我们翻译一下的话,我们的这个操作呀,翻译成我们的什么,我们的这个英文的话应该叫operator,所以啊,咱们的操作呢,应该称之为什么呢?叫operator,那但是其实这个我们如果翻译过来的话,就叫做什么操操,所以这个没问题,所以回过头来,我们的的含义就叫operator,那对于RDD来讲,你对RDD的操作难道不是它的方法吗?
07:17
所以啊,咱们所谓的RDD的算子其实就是RDD的方法,但是为什么这么称呼,为什么不叫方法,这个咱们后面会给大家解释啊,现在我们就了解这个算子是什么意思就可以了,那这样的话呢,把上面做一个简单的转换,我们不说了吗?RDD的方法它是有两种,那么一个叫转换,一个叫行动,现在换一下就是RDD的算子分两种,一个叫转换算子,一个叫行动算子,这个大家能明白了吗?
我来说两句