00:00
同学们,我们接下来讲一个新的章节啊,这个章节我们叫Spark circle啊,这个章节啊,咱们在之前给大家介绍的时候,咱们介绍过基于Spark call其实开发了很多的不同模块,形成了一个Spark的生态圈,对吧?那Spark circle Spark streaming,还有Spark ML和Spark graph。那Spark circle呢,就是对结构化数据处理的A模块,那么我们官方当中也提出了这样的说明,大家看啊,Spark circle是Spark用于结构化数据处理的Spark模块,诶就是这样的啊,那么为什么会出现这个模块呢?它基于什么样的原因呢?给大家解释一下这个呀,不得不提到咱们之前大家学过的一个框架叫做have,那么have其实是一个基于海杜框架的一个S引擎工具。他的目的是为了简化我们的map reduce的开发,因为早期的很多大数据的从业人员呢,其实都是来自于我们的we部开发呀,或者说搜开发的那些程序员,那么这些程序员呢,其实对大数据呢并不是很理解,所以第一个map reducece的开发效率并不高,第二个大家可能都不太好理解,那么开发效率就更差了,对不对?所以我们如何能够提高我们map reduce的开发效率呢?这个时候have就出现了,它用circle的方式来简化map produce,说的简单点,你写一个circle,诶,我们的框架呢,把circle转换成map produce框架,让他来执行,这个执行的效率呢并不会提高,但是你的开发效率就非常高了,为什么你写个select的from user,他就会转换成我们的map,就是程序去做,大家想一想,那我如果不会大数据map的程序是不是也能用这个框架了,而且也能实现大数据的一些数据统计了。所以这种方式。
01:50
是非常好的啊,最起码在当时呢,是受到很多程序员的欢迎的,那我们Spark的开发人员他也认为,诶汉我能做的这个事儿,那我们Spark能不能也做这个事情呢?我写一段S文,能把咱们RD的代码给他简化一下呢,像咱们之前给大家讲Spark号的时候,写了需求的时候那么多的代码,那我能不能简化成SQL语句呢?如果我能写SQL语句的话,那肯定会简化很多的逻辑代码,对不对,那也就提高了开发效率,所以这是我们的创建这个框架的初衷,所以啊,这个我们有一个SRK啊,这个SRK呢,就是将我们的Spark和have相结合的一个框架,诶我们称之为叫SRK,那么这个SRK呢,它其实就是利用了这种have的这种circle简化的思想,把RDD进行简化。
02:41
这样的话呢,其实底层用的是我们的Spark,那么用的have的引擎来做操作,Have的解析语法规则什么的,这样的话呢,其实啊确实提高了很多的性能,大家看一下,在我们的下面有两张图,这张图形当中第一个是have,第二个是我们的Su。他们的核心的底层,大家会发现,就是把那个计算引擎map reducece换成了Spark,但是你其他的东西,其实呀,我们都进行了什么改变,那所以说呢,其实改变是改变,那也差不多,那么在这种情况下,这个shark呢,它就优于咱们的have,因为引擎发生变化了嘛,对不对,可是你的引擎变确实是快了,但是你受到了其他组件的制约,因为你的have的东西还在里面呢,那这样的话,Have发展的慢,你的Spark发展的快,那是不均衡的,所以这样的话,使Spark的发展就受制于have,那绝对是不允许的嘛。所以在这种情况下,经过一番思想斗争,史Spark萨RK框架呀,他决定把have从他当前的框架当中移除出去,那么移出去之后就只剩下他自己了,这样的话,就产生了我们的两个框架,这两个框架一个叫做Spark circle,一个叫have on Spark。
03:58
那么也就意味着我们的Spark,它跟我们的have相结合的方式发生了改变,比方说have可以运行在我们的Spark的引擎之上,或者呢,我们就跟还没有关系,独立的使用Spark来操作结构化数据,这样的话就产生了我们的Spark circle这样的框架。
04:17
当你把那个have的内容和have的这些东西从我们框架中移除出去之后,你就没有制约了,那么你SPA怎么发展,那我们这就怎么发展,所以啊,性能非常的快,这是我们的一大优势啊。然后呢,我们的Spark circle,它到底它发生了什么样的这种改变呢?首先咱们往下看,你会发现呢,它里面的引擎还是基于咱们Spark块的,没有任何问题,但是呢,又可以用circle的方式来简化我们的开发,所以开发效率提高了,而我们的运行效率也是很高的,你说这不挺好的吗?对不对?哎,可是呀,它怎么就能够提高开发效率,他怎么做的呢?这时候我们要提到一点,它的底层啊,其实为了简化RDD的开发,它在RDD的上面又装了一,这样的话,它装了两个数据模型,一个叫frame,一个叫。
05:13
那么封装了新的模型之后,那么再去做开发的时候,底层就做了优化,所也从性能来讲,从开发效率来讲,它都得到了一个极大的发展,这也是我们学习它的目的啊。在工作当中我们会有数仓的相关的业务,那么我们会跟have相结合,那么Spark circle恰恰是一个好的选择啊,同学们。
我来说两句