1. 程式人生 > >Spark SQL

Spark SQL

mapr bsp 單機 模塊 ont 比較 分布 整合 技術

1.1. Spark SQL概述

1.1.1. 什麽是Spark SQL

技術分享

Spark SQL是Spark用來處理結構化數據的一個模塊,它提供了一個編程抽象叫做DataFrame並且作為分布式SQL查詢引擎的作用。

1.1.2. 為什麽要學習Spark SQL

我們已經學習了Hive,它是將Hive SQL轉換成MapReduce然後提交到集群上執行,大大簡化了編寫MapReduce的程序的復雜性,由於MapReduce這種計算模型執行效率比較慢。所以Spark SQL的應運而生,它是將Spark SQL轉換成RDD,然後提交到集群執行,執行效率非常快!

1.易整合

技術分享

2.統一的數據訪問方式

技術分享

3.兼容Hive

技術分享

4.標準的數據連接

技術分享

1.1. DataFrames

1.1.1. 什麽是DataFrames

與RDD類似,DataFrame也是一個分布式數據容器。然而DataFrame更像傳統數據庫的二維表格,除了數據以外,還記錄數據的結構信息,即schema。同時,與Hive類似,DataFrame也支持嵌套數據類型(struct、array和map)。從API易用性的角度上 看,DataFrame API提供的是一套高層的關系操作,比函數式的RDD API要更加友好,門檻更低。由於與R和Pandas的DataFrame類似,Spark DataFrame很好地繼承了傳統單機數據分析的開發體驗。

技術分享

1.1.2. 創建DataFrames

在Spark SQL中SQLContext是創建DataFrames和執行SQL的入口,在spark已經內置了一個sqlContext

技術分享

技術分享

hadoop fs -put person.txt /

技術分享

技術分享

Spark SQL