温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
好了,同学们,我们刚才呢,给大家用第二种不同的方式来实现我们的world count啊,嗯,但是我们说了你看的这些方法呀,就感觉很熟悉,在咱们学skyla集合当中会有很多的方法,Goodbye map reduce,包括我们的Fla map啊,除了环境啊t fair我们可能没有接触过以外,好像其他的跟SC集合的方法非常的类似呀,对不对?同学们,所以啊,在这种情况下,诶,感觉好像这个Spark框架也挺简单的呀,好像也没什么新东西啊,其实不是啊,Spark呢,既然呢对我们的这个map reduce框架做了一个优化,那所以它一定会提供一些优化的方法和一些我们的功能,对不对?所以啊,我们接下来给大家演示一下Spark做了哪些操作啊来,咱们之前演示的方法确实好像感觉跟那个SKY集合很像,但是节接下来要给大家说的就不是了,嗯,好,把这个打开放过来啊,放过来以后这些都给它删掉,咱们别的不管它啊,OK,然。
01:00
然后呢,我们接着往下往下往下诶往下咱们在这里说一下,嗯,咱们这里写上,诶编写图,嗯就直接写吧,咱们的bug框下啊,它提供了咱们叫更多的功能。啊,更多诶提供更多的功能,它可以干嘛呢,将我们的分组和聚合啊,咱们叫组和聚合呢,来使用一个方法实现。啊,一个方法实现,像之前给大家讲的呢,Group啊,先分组,然后呢,分完组咒再做聚合,现在不用了,使B呢,就可以将两个功能融合成一个,这是完全可行的啊,那所以呢,在这种情况下,同学看,那我完全就可以把它去掉了,我不要了,为什么呢?因为Spark提供了更加简洁的方法,那我这里呢,就word to one,咱们拿过来,拿过来以后我们点大家看,它提供了这么一个方法叫reduce by key啊,咱们叫by key,那这个方法就很简单,它就是相同的key。
02:02
会对value做我们的reduce,所以啊,这个功能咱们说一下,咱们叫reduce by key,记住这个是Spark框架所提供的一个功能,干嘛呢?就是相同的K的数据啊,K的数据可以对我们的value进行reduce聚合。所以啊,咱们相同的K就是相同的word嘛,那么你的reduce是就是对这个111做聚合,那么一般聚合都是两两聚合,那咱们就可以写上下划线加上下划线对吧?同学们,咱们函数式编程当中的逆名函数的质简原则咱们讲过了对吧?诶,那么这里呢,就是下划线加下划线啊,如果大家史该LA当中的匿名函数的自简原则还不太熟悉的话,那我们就可以变一变,比方说我们就叫什么呢?括号,咱们叫X和那个Y,那么这里呢,我们再来,我们写上一个花括号,我们叫X,咱们再加上Y就行了,对不对,嗯,就是这样,那好了,那么我们这么写完以后,我们说了质检原则,质检原则那就意味着在某些情况下是可以简化的,比方说如果逻辑代码中只有一行的情况下,这个是划括号是可以不要的,对吧?那好,如果有参数类型的话,这个参数类型能推断出来,这个类型其实也可以不要,我们这儿本来就没有,对不对,如果你的参数是按照顺序只使用了一次的情况下,那么你。
03:23
的参数可以用下划线代替,所以说这个参数就可以省略了,然后呢,你使用我们下划线来代替,诶就是这个意思,好了啊,这就是我们的reduce by key,好,那这个reduce by key其实写完之后,我们的word啊,咱们叫to count其实就出来了,大家有没有发现要比之前简单了很多,对不对,诶就是这个意思啊,那你这个功能有没有什么问题呢?结果对不对呢?我们来验证一下。好,同学们,你们看这个结果对不对?结果没问题吧?诶,结果是正确的,所以啊,三种方式其实都可以实现我们的work count,前两种大家可能感觉跟skyla集合很像,那么第三种你会发现Spark提供的功能相对来说是不是就简单了一些,我们map之后是不是就直接reduce呀?哎,底层做了很多的事情,暂时先不管它,咱们后面会讲好不好,同学们。
我来说两句