spark sql怎么划分stage

如题所述

其实sql就是关系操作。关系操作跟map,reduce这些基础算子对应起来的(spark其实基础算子也是map,reduce,只是在此基础上做了扩展)。比如projection,filter是窄依赖,join,semi join,outer join是宽依赖。
具体流程会比较复杂。首先spark会解析这条sql,生成语法树(spark2.0会通过antlr4解析),然后经过逻辑优化(dataframe中有logic plan),然后转换为map reduce,生成对应的操作算子(projection,filter,join等)。有了宽依赖,窄依赖,也就能划分stage了。
温馨提示:答案为网友推荐,仅供参考