sparkSQL 的由來
我們知道最初的計算框架叫 mapreduce,他的缺點是計算速度慢,還有一個就是代碼比較麻煩,所以有了 hive;
hive 是把類 sql 的語句轉換成 mapreduce,解決了開發難的問題,但是 hive 的底層還是 mapreduce,仍然是慢;
spark 也看到了 hive 的優勢,以 hive 為中心的一套框架 shark 營運而生,它是 spark 的前身,h 就是 hive 的意思;
但是 為了 提高 shark 的效率,spark 自己開發了一套算法,替代了之前 hive 的思路,這套算法就是 sparkSQL
sparkSQL 簡介
sparkSQL 是 spark 專門處理結構化數據的一個模塊,也就是像數據表一樣的數據,處理方式就是像 sql 一樣;
換句話說,sparkSQL 使用 sql 的方式代替了之前數據處理的方式。
sparkSQL 提供了兩個編程抽象:DataFrame 和 DataSet,起到了分布式 SQL 查詢引擎的作用;
sparkSQL 把 sql 語句 和 dataFrame、dataSet 轉換成了 RDD,執行效率非常快;
也就是說 dataFrame、dataSet 的底層仍然 是 RDD,並且可以互相轉換
sparkSQL 的特點
官方解釋
易整合:
兼容 hive:
統一的數據訪問方式:用同樣的方式讀取各類文件
標准的數據庫連接:可以通過 JDBC 或者 ODBC 連接標准數據庫
后面會詳細解釋。
sparkSQL vs DB Hive