简单记录一下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(