Spark SQL官方介紹
官網:http://spark.apache.org/sql/
Spark SQL是Spark用來處理結構化數據的一個模塊。
Spark SQL還提供了多種使用方式,包括DataFrames API和Datasets API但無論是哪種API或者是編程語言,它們都是基於同樣的執行引擎,因此你可以在不同的API之間隨意切換,它們各有各的特點。
Spark SQL 的特點
-
易整合
可以使用java、scala、python、R等語言的API操作。 -
統一的數據訪問
連接到任何數據源的方式相同。 -
兼容Hive
支持hiveHQL的語法。
兼容hive(元數據庫、SQL語法、UDF、序列化、反序列化機制) -
標準的數據連接
可以使用行業標準的JDBC或ODBC連接。
SQL優缺點
- SQL的優點
表達非常清晰, 比如說這段 SQL 明顯就是爲了查詢三個字段,條件是查詢年齡大於 10 歲的
難度低、易學習。 - SQL的缺點
複雜分析,SQL嵌套較多:試想一下3層嵌套的 SQL維護起來應該挺力不從心的吧
機器學習較難:試想一下如果使用SQL來實現機器學習算法也挺爲難的吧
Hive和SparkSQL:
Hive是將SQL轉爲MapReduce
SparkSQL可以理解成是將SQL解析成’RDD’ + 優化再執行