您好,登錄后才能下訂單哦!
這篇文章主要介紹“Spark SQL的簡單介紹”,在日常操作中,相信很多人在Spark SQL的簡單介紹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Spark SQL的簡單介紹”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Spark 1.0 推出 Spark SQL,是 Spark 生態系統中最活躍的組件之一。能夠利用 Spark 進行結構化的存儲和操作。結構化數據可以來自外部源:Hive/Json/parquet,1.2開始支持 JDBC等,也可以對已有 RDD 增加 Schema 的方式獲得。
當前 Spark SQL 使用 Catalyst 優化器對 SQL 語句進行優化,從而得到更好的執行方案。
更重要的是,Spark SQL 基于 DataFrame 可以和 SparkStreaming ,MLIb 等進行無縫集成,這樣可以使用一種技術棧對數據進行批處理,流式處理和交互式查詢等。
Spark SQL允許使用SQL或熟悉的DataFrame API在Spark程序中查詢結構化數據。可用于Java、Scala、Python和R。
Hive 是 Shark 的前身,Shark 是 Spark SQL 的前身。
根據伯克利實驗室提供的測試數據,Shark 基于內存的計算性能是 hive 的100倍左右,即使是磁盤計算,它的性能也是 hive 的 10 倍左右。而 Spark SQL 比 Shark 又有較大的提升。
Hive 是建立在 Hadoop 之上的數據倉庫基礎框架,也是最早運行在 Hadoop 上的 SQL on Hadoop 工具之一,但是 hive 是基于 MapReduce 的,計算過程有大量的中間磁盤落地過程,消耗了大量的 IO,這大大降低了運行效率。基于此,大量優化的 SQL Hadoop 的工具出現,變現最為突出的就是 Shark。
Shark 直接建立在 Apache Hive 上,擴展了 Hive 并修改了 Hive 架構中的內存管理、物理計劃和執行三個模塊,使之可以運行在 Spark引擎上面。所以它幾乎支持 hive 的所有特點,數據格式、UDF,并采用 hive 的解析器,查詢優化器等。(如下圖所示)
2014年,Databricks 公司宣布 Shark 全面轉向 Spark SQL。
Spark SQL 在 hive 兼容層面僅依賴于 HQL Parser/Hive Metastore/Hive SerDes,也就是從 HQL 被解析成語法樹(AST)q起,就全部由 Spark SQL 接管了,執行計劃和優化都是由 Catalyst 負責。
除了支持現有的 Hive 腳本,Spark SQL 還內建了一個精簡的 SQL 解析以及一套 Scala DSL,如果使用 Spark SQL 內建方言或 Scala DSL 對原生 RDD 對象進行操作,我們可以完全不依賴 hive 那套東西。Spark SQL 吸取了 Shark 的優點,比如內存列存儲。
DataFrames和SQL提供了訪問各種數據源的通用方法,包括Hive、Avro、Parquet、ORC、JSON和JDBC。甚至可以跨這些源連接數據。
參考
https://spark.apache.org/sql/
到此,關于“Spark SQL的簡單介紹”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。