0.介紹:java
(1)Spark SQL的前身是Shark,即Hive on Spark,數據庫
1.SparkSQL特色:編程
(1)支持多種數據源:Hive,RDD,Parquet,JSON,JDBC等。性能優化
(2)多種性能優化技術:in-memory columnar storage,byte-code generation,cost model動態評估等分佈式
(3)組件擴展:對於SQL的語法解析器、分析器以及優化器,用戶均可以本身從新開發,而且動態擴展。SparkSQL的性能對比Shark來講,又有了數倍的提高。性能
2.SparkSQL和DataFrame學習
(1)SparkSQL是Spark中的一個模塊,主要用於進行結構化數據的胡處理。它提供了一個一個最核心的編程抽象,就是DataFrame。同時SparkSQL還能夠做爲分佈式的SQL查詢引擎。SparkSQL最重要的功能之一就是從Hive中查詢數據。優化
(2)DataFrame能夠理解爲是以列的形式組織的分佈式的數據集合,它和關係型數據庫中的表很是類似,可是底層作了不少的優化。DataFrame能夠經過不少源來構建,如結構化數據文件,Hive中的表,外部的關係型數據庫以及RDD。spa
(3)Spark 在 RDD 基礎上,提供了 DataFrame 和 Dataset 用戶編程接口,而且在跨語言( Scala 、 Java 、Python 和 R)方面具備很好的支持 。 爲了追求簡化,下降開發人員的學習成本,從 Spark 2.0 開始, DataFrame 和 Dataset 進行了統一。 scala
3.SparkContext
(1)SparkContext對象的建立
java版本:
scala 版本的對象建立