50:Spark中的新解析引擎Catalyst源码Physical Plan彻底详解

55 篇文章 0 订阅
55 篇文章 0 订阅

本期内容:

1. SparkPlanner的基本工作机制

2. Physical Plan源码彻底详解


物理计划是Spark和Sparksql相对比而言的,因为SparkSql是在Spark core上的一个抽象,物理化就是变成RDD,是SparkSql和Spark core之间的衔接点。

Physical Plan也是Catalyst变成Spark作业的最后一个阶段。

生成SparkPlan

从代码,我们可以看到SparkPlan的生成包含了两个步骤,首先会调用SparkPlanner的plan方法,生成SparkPlan,调用prepareForExecution的execute方法,再进行一次加工。
Snip20160725_1
Snip20160725_2

SparkPlanner继承自SparkStrategies,strategies是精髓。
Snip20160725_3

其执行在下面的plan方法,所有的strategies应用在plan上得到的physicalPlan,这个方法返回一个Iterator。
Snip20160725_4

修正SparkPlan

而在prepareForExecution中,我们看到只是定了两个规则,主要是执行计划进行修正。
其中EnsureRequirements主要针对shuffle操作,确保前后的plan分区数兼容。
Snip20160725_6

执行SparkPlan

这些操作都是逻辑级别的,sparkplan最终都是调用execute方法生成RDD。

Snip20160725_7


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值