學習緻謝:
https://www.bilibili.com/video/BV1Xz4y1m7cv?p=52
資料分析方式
指令式
缺點:有一定的學習成本/入門門檻
優點:靈活!可以使用底層api實作很複雜的業務
SQL
優點:入門門檻低,隻要會英文單詞/簡單的文法規則就可以寫
缺點:隻能做一些簡單的業務,負責業務實作起來就比較苦難
SparkSQL的前世今生
SparkSQL誕生
從Spark架構1.0開始釋出SparkSQL子產品開發,直到1.3版本釋出SparkSQL Release版本可以在生産環境使用,再到Spark 2.0版本SparkSQL才算真正穩定,在實際開發中發揮者其巨大的作用,SparkSQL的發展經曆如下幾個階段:
. Spark1.0之前:沒有SparkSQL,有一個開源項目shark底層使用Spark作為Hive的執行引擎
·Spark1.0時: Spark自己開發了新的元件:SparksQL,使用SchemaRDD對RDD進行封裝,用來表示帶有限制的RDD
·Spark1.3時: SparkSQL開發了新的資料抽象:DataFrame:底層實作了RDD的大部分功能,并增加了SQL操作,不再強依賴RDD,但不支援泛型
·Spark1.6時: SparkSQL開發了新的資料抽象:DataSet:支援泛型
·Spark2.0時:統一了DataFrame和DataSet: DataSet[Row] =DataFrame,且增加了新的元件:StructuredStreaming支援SQL處理流資料
注意:
1.SparkSQL發展曆史較為曲折,走了很多彎路,但也都是必須的,因為要相容其他語言
2盡管SparkSQL的API很多(且支援很多程式設計語言),但是使用起來都很友好,底層也都做了很多的性能優化!
官網介紹
http://spark.apache.org/sql/
說明:
1.結構化資料-支援
有固定的結構和限制Schema(字段名稱/類型)
[
{
"name":"jack",
"tel":"13888888888",
},
{
"name":"jack",
"tel":13888888888,
"age":18
},
{
"name":"jack",
"tel":"13888888888",
"age":"18"
}
]