天天看點

Spark綜合學習筆記(十七)SparkSQL概述

學習緻謝:

​​https://www.bilibili.com/video/BV1Xz4y1m7cv?p=52​​

資料分析方式

指令式

Spark綜合學習筆記(十七)SparkSQL概述

缺點:有一定的學習成本/入門門檻

優點:靈活!可以使用底層api實作很複雜的業務

SQL

Spark綜合學習筆記(十七)SparkSQL概述

優點:入門門檻低,隻要會英文單詞/簡單的文法規則就可以寫

缺點:隻能做一些簡單的業務,負責業務實作起來就比較苦難

SparkSQL的前世今生

SparkSQL誕生

從Spark架構1.0開始釋出SparkSQL子產品開發,直到1.3版本釋出SparkSQL Release版本可以在生産環境使用,再到Spark 2.0版本SparkSQL才算真正穩定,在實際開發中發揮者其巨大的作用,SparkSQL的發展經曆如下幾個階段:

Spark綜合學習筆記(十七)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/​​

Spark綜合學習筆記(十七)SparkSQL概述
Spark綜合學習筆記(十七)SparkSQL概述
Spark綜合學習筆記(十七)SparkSQL概述
Spark綜合學習筆記(十七)SparkSQL概述
Spark綜合學習筆記(十七)SparkSQL概述
Spark綜合學習筆記(十七)SparkSQL概述

說明:

1.結構化資料-支援

有固定的結構和限制Schema(字段名稱/類型)

Spark綜合學習筆記(十七)SparkSQL概述
[
{
"name":"jack",
"tel":"13888888888",
},
{
"name":"jack",
"tel":13888888888,
"age":18
},
{
"name":"jack",
"tel":"13888888888",
"age":"18"
}
]      

繼續閱讀