Spark-SQL运行流程

Spark-SQL运行流程_第1张图片

    Sprak SQL也是有lazy特性的,当你调用sql()执行SQL语句时,默认执行第一步-->>就是用SqlParser组件对SQL生成一个Unresolved LogicalPlan(调用了SqlParser的apply()方法,通过语法解析器,将SQL各部分组装成LogicalPlan,它是一课语法树---Tree)

    然后将UL和SQLContext自身的实例(this),封装为一个DataFrame,返回给用户。当用户拿到之后就可以执行一些show(),select().show(),groupby().show()这样的操作,或者拿到DataFrame对应的RDD,执行transformation操作,最后执行action操作。

    当执行了上述要求返回结果数据操作,才会触发Spark SQL后续执行流程:包括Analyzer,Optimzer,SparkPlan,PhysicalPlan,execute

 

你可能感兴趣的:(spark)