SparkSQL的特點有以下這些:
SparkSQL可以讀取多種的結構化的數據源,如Json、Hive表、Parquet、ORC以及通過JDBC連接其他的關系數據庫。
訪問方式即可以通過應用程序中通過SQLContext、HiveContext來連接各種數據源或者已存的Hive表,也可以將RDD轉換成Dataframe來進行DataFrame接口的訪問,也可以通過DSL的方式訪問;同樣也可以啟動一個Spark的JDBC服務器,提供JDBC的訪問方式。
可以提供表的Cache機制,這樣針對一個表的多次處理的時候,可以非常高效,節省了讀取部分的時間,也是內存計算的亮點。
Streaming中也可以將其中的RDD轉換成DataFrame,進行SQL處理,這里體現了一站式方案的優點。
Hive的Metastore支持多版本,從0.12.0到最新的1.2.1版本,通過設置spark.sql.hive.metastore.version來指定。
其中SparkSQL的API使用方式支持Scala、Java、Python和R這四種不同的方式,且在這個情況下,即使使用Python、R與Scala、Java此類JVM原生的方式,性能也會比較接近,因為都是DataFrame內部的catalyst統一優化。
同時在最新版本1.5.x中的鎢絲計劃(ProjectTungsten)大幅提升了SparkSQL的性能,從最新版本的默認打開來看,這也意味著該功能的成熟,如之前版本的Codegen能夠帶來很大的性能提升,但是亦存在穩定性問題。而且SparkSQL也是Spark社區后續重點發展的一個方向。
回答所涉及的環境:聯想天逸510S、Windows 10。
SparkSQL的特點有以下這些:
SparkSQL可以讀取多種的結構化的數據源,如Json、Hive表、Parquet、ORC以及通過JDBC連接其他的關系數據庫。
訪問方式即可以通過應用程序中通過SQLContext、HiveContext來連接各種數據源或者已存的Hive表,也可以將RDD轉換成Dataframe來進行DataFrame接口的訪問,也可以通過DSL的方式訪問;同樣也可以啟動一個Spark的JDBC服務器,提供JDBC的訪問方式。
可以提供表的Cache機制,這樣針對一個表的多次處理的時候,可以非常高效,節省了讀取部分的時間,也是內存計算的亮點。
Streaming中也可以將其中的RDD轉換成DataFrame,進行SQL處理,這里體現了一站式方案的優點。
Hive的Metastore支持多版本,從0.12.0到最新的1.2.1版本,通過設置spark.sql.hive.metastore.version來指定。
其中SparkSQL的API使用方式支持Scala、Java、Python和R這四種不同的方式,且在這個情況下,即使使用Python、R與Scala、Java此類JVM原生的方式,性能也會比較接近,因為都是DataFrame內部的catalyst統一優化。
同時在最新版本1.5.x中的鎢絲計劃(ProjectTungsten)大幅提升了SparkSQL的性能,從最新版本的默認打開來看,這也意味著該功能的成熟,如之前版本的Codegen能夠帶來很大的性能提升,但是亦存在穩定性問題。而且SparkSQL也是Spark社區后續重點發展的一個方向。
回答所涉及的環境:聯想天逸510S、Windows 10。