基于spark1.3.1的spark-sql实战-01
sqlContext总的一个过程如下图所示: SQL语句经过SqlParse解析成 Unresolved LogicalPlan; 使用 analyzer结合数据数据字典(catalog)进行绑定,生成 resolved LogicalPlan; 使用 optimizer对 resolved LogicalPlan进行优化,生成 optimized LogicalPlan; 使用 SparkPlan将 LogicalPlan转换成 PhysicalPlan; 使用 prepareForExecution()将 PhysicalPlan转换成可执行物理计划; 使用 execute()执行 可执行物理计划; 生成SchemaRDD。 SQL语句经过HiveQl.parseSql解析成Unresolved LogicalPlan,在这个解析过程中对hiveql语句使用getAst()获取AST树,然后再进行解析; 使用analyzer结合数据hive源数据Metastore(新的catalog)进行绑定,生成resolved LogicalPlan; 使用optimizer对resolved LogicalPlan进行优化,生成optimized LogicalPlan,优化前使用了ExtractPythonUdfs(catalog.PreInsertionCasts(catalog