日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Spark _21 _SparkSQL介绍

發布時間:2024/2/28 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spark _21 _SparkSQL介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Shark

Shark是基于Spark計算框架之上且兼容Hive語法的SQL執行引擎,由于底層的計算采用了Spark,性能比MapReduce的Hive普遍快2倍以上,當數據全部load在內存的話,將快10倍以上,因此Shark可以作為交互式查詢應用服務來使用。除了基于Spark的特性外,Shark是完全兼容Hive的語法,表結構以及UDF函數等,已有的HiveSql可以直接進行遷移至Shark上Shark底層依賴于Hive的解析器,查詢優化器,但正是由于SHark的整體設計架構對Hive的依賴性太強,難以支持其長遠發展,比如不能和Spark的其他組件進行很好的集成,無法滿足Spark的一棧式解決大數據處理的需求。

SparkSQL

  • SparkSQL介紹

Hive是Shark的前身,Shark是SparkSQL的前身,SparkSQL產生的根本原因是其完全脫離了Hive的限制。

  • SparkSQL支持查詢原生的RDD。 RDD是Spark平臺的核心概念,是Spark能夠高效的處理大數據的各種場景的基礎。
  • 能夠在Scala中寫SQL語句。支持簡單的SQL語法檢查,能夠在Scala中寫Hive語句訪問Hive數據,并將結果取回作為RDD使用。
    • Spark on Hive和Hive on Spark

    Spark on Hive: Hive只作為儲存角色,Spark負責sql解析優化,執行。

    Hive on Spark:Hive即作為存儲又負責sql的解析優化,Spark負責執行。

    • DataFrame

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

    DataFrame的底層封裝的是RDD,只不過RDD的泛型是Row類型。

    • SparkSQL的數據源

    SparkSQL的數據源可以是JSON類型的字符串,JDBC,Parquent,Hive,HDFS等。

    • SparkSQL底層架構

    首先拿到sql后解析一批未被解決的邏輯計劃,再經過分析得到分析后的邏輯計劃,再經過一批優化規則轉換成一批最佳優化的邏輯計劃,再經過SparkPlanner的策略轉化成一批物理計劃,隨后經過消費模型轉換成一個個的Spark任務執行。

    • 謂詞下推(predicate Pushdown)

    總結

    以上是生活随笔為你收集整理的Spark _21 _SparkSQL介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。