Spark SQL: Spark中的关系数据处理
摘要
Spark SQL是Apache Spark中的一个新模块,它集成了关系处理和Spark的函数式编程API。基于我们使用Shark的经验,Spark SQL允许Spark程序员利用关系处理的好处(例如,声明式查询和优化存储),并允许SQL用户调用Spark中的复杂分析库(例如,机器学习)。与以前的系统相比,Spark SQL增加了两个主要功能。首先,它通过一个与过程性Spark代码集成的声明性DataFrame API,在关系处理和过程性处理之间提供了更紧密的集成。其次,它包括一个高度可扩展的优化器Catalyst,它使用Scala编程语言的特性构建,这使得添加可组合规则、控制代码生成和定义扩展点变得很容易。使用Catalyst,我们已经为现代数据分析的复杂需求构建了各种特性(例如,JSON的模式推断、机器学习类型和到外部数据库的查询联合)。我们认为Spark SQL是SQL-on-Spark和Spark本身的进化,提供了更丰富的api和优化,同时保留了Spark编程模型的优点。