Spark sql查询执行过程

本文详细记录了Spark SQL(1.2版本)的查询执行过程,从创建SqlContext对象开始,经sqlText解析生成逻辑执行计划,再通过Analyzer绑定与Optimizer优化,转化为PhysicalPlan并执行,最终生成SchemaRDD。虽然Spark SQL 1.3中SchemaRDD被DataFrame取代,但基本执行流程保持不变。
摘要由CSDN通过智能技术生成

简单记录一下Spark sql(1.2版本)查询执行过程:

1.创建SqlContext对象
2.调用sqlContext.sql(sqlText)方法

val rdd:SchemaRDD = sqlContext.sql(sqlText: string)
// sql()方法实际上是new出来SchemaRDD,但是先得做些其他事
new SchemaRDD(this, parseSql(sqlText))

3.调用parseSql(sql)解析sql字符串,生成逻辑执行计划 baseLogicalPlan

// 解析sql字符串
parseSql(sql) 
// 判断该sql是不是DDL语句
// 如果是DDL语句就使用DDLParser进行解析
// 否则就使用SparkSQLParser进行解析
// 结果都是返回LogicalPlan
ddlParser(sql).getOrElse(
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值