Spark修炼之道(高级篇)——Spark源码阅读:第十三节 Spark SQL之SQLContext(一)

  • 时间:
  • 浏览:0

catalog用于注销表、注销表、判断表是算是位于等,相似 当DataFrame调用registerTempTable 土办法时

其支持的关键字有:

SparkSQLParser为顶级的Spark SQL解析器,对Spark SQL支持的SQL语法进行解析,其定义如下:

createTable土办法具有如下(具体功能参考注释说明):

其对应的源码为:

describeTable及refreshTable代码如下:

SQLContext是Spark SQL进行特征化数据处理的入口,可不都可以 通过它进行DataFrame的创建及SQL的执行,其创建土办法如下:

当spark.sql.allowMultipleContexts设置为true时,则允许创建多个SQLContexts/HiveContexts,创建土办法为newSession

fallback函数用于解析其它非Spark SQL Dialect的语法。

Spark SQL Dialect支持的关键字包括:

sqlContext.registerDataFrameAsTable实质上调用的之后 catalog的registerTable 土办法:

sqlParser在SQLContext的定义:

其调用的是私有的主构造函数:

SimpleCatalog整体源码如下:

其isRootContext 被设置为false,之后 会抛出异常,不可能 root SQLContext只能另有有一4个 ,其它SQLContext与root SQLContext共享SparkContext, CacheManager, SQLListener。不可能 spark.sql.allowMultipleContexts为false,则只允许另有有一4个 SQLContext位于

会sqlContext的registerDataFrameAsTable土办法

用于解析DDL(Data Definition Language 数据定义语言)

主要做三件事,分别是创建表、描述表和更新表

作者:周志湖