1. 程式人生 > 其它 >【Spark】Day03:Spark SQL:DataFrame、DataSet、sql操作、專案實戰(區域熱門商品)

【Spark】Day03:Spark SQL:DataFrame、DataSet、sql操作、專案實戰(區域熱門商品)

一、概述

1、介紹

將Spark SQL轉換成RDD,然後提交到叢集執行,執行效率非常快

提供了2個程式設計抽象,類似Spark Core中的RDD:DataFrame&DataSet

2、特點

易整合SQL和spark

統一的資料訪問方式

相容hive

標準資料連線

3、DataFrame

以RDD為基礎的分散式資料集,類似於二維表格

帶有schema元資訊

支援巢狀型別

每一列都帶有名稱和型別

查詢計劃通過Spark catalyst optimiser進行優化,可以獲得比RDD更高的效能

利用基於關係代數的等價變換,將高成本的操作替換為低成本操作的過程

4、DataSet

分散式資料庫集合

表用row表示

二、Spark SQL程式設計

1、SparkSession查詢起始點

SparkSession是Spark最新的SQL查詢起始點

SparkSession內部封裝了sparkContext,計算實際上是由sparkContext完成

2、DataFrame

建立:資料來源、json、其他RDD

建立臨時表、SQL查詢並顯示

特定領域語言(domain-specific language, DSL)DSL風格語法顯示,無需建立臨時檢視

RDD與DF的轉換

3、DataSet

建立

轉換

4、DataFrame與DataSet的互操作

5、RDD、DataFrame和DataSet之間的關係

6、IDEA建立SparkSQL程式

7、使用者自定義函式

UAF UDAF UDTF

自定義累加器、聚合函式

三、SparkSQL資料的載入與儲存

1、通用的載入和儲存方式

spark.read.load 是載入資料的通用方法
df.write.save 是儲存資料的通用方法

2、JSON檔案

3、MySQL

從JDBC讀寫資料

4、Hive

內嵌hive

外部hive

四、SparkSQL專案實戰

1、準備資料

hive中建立表

1張使用者行為表,1張城市表,1 張產品表

2、需求:各區域熱門商品Top3

本文來自部落格園,作者:劉金輝,轉載請註明原文連結:https://www.cnblogs.com/liujinhui/p/15582566.html