您当前的位置: 首页 >  ar

段智华

暂无认证

  • 3浏览

    0关注

    1232博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

第51课: Spark中的新解析引擎Catalyst源码SQL最终转化为RDD具体实现

段智华 发布时间:2017-06-15 06:19:01 ,浏览量:3

第51课: Spark中的新解析引擎Catalyst源码SQL最终转化为RDD具体实现

基于DataSet的代码转换为RDD之前需要一个Action的操作,基于Spark中的新解析引擎Catalyst进行优化,Spark中的Catalyst不仅限于SQL的优化,Spark的五大子框架(Spark Cores、Spark SQL、Spark Streaming、Spark GraphX、Spark Mlib)将来都会基于Catalyst基础之上。

Dataset.scala的collect方法源码:

1.            defcollect(): Array[T] = collect(needCallback = true)

进入collect(needCallback = true)方法:

1.           private def collect(needCallback: Boolean):Array[T] = {

2.             def execute(): Array[T] =withNewExecutionId {

3.               queryExecution.executedPlan.executeCollect().map(boundEnc.fromRow)

4.             }

5.          

6.             if (needCallback) {

7.               withCallback("collect",toDF())(_ => execute())

8.             } else {

9.               execute()

10.          }

<
关注
打赏
1659361485
查看更多评论
立即登录/注册

微信扫码登录

0.2172s