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編程模型的優點。