在目前企業級 spark大資料開發中,大多數情況下都是採用hive來作為資料倉儲的。spark提供了對hive的支援,
spark通過hivecontext可以直接操作hive中的資料。基於hivecontext,、我們可以使用sql/hql兩種方式來編寫sql語句
對hive進行操作,包括:建立表、刪除表、往表中匯入資料、以及對錶中的資料進行crud(増、刪、改、查)操作。
下面就開始動手實戰。
注意如果沒有將hive的hive-site.xml拷貝到spark的conf中,通過spark sql並不能顯示hive中通過hive建立的資料庫,
hadoop下的core-site.xml和hdfs-site.xml也拷貝過來。
本案例使用 scala 語言開發,在spak中使用hive資料庫,通過 hivecontext使用join基於hive中的兩張表(人員資訊表、人員分數表)
進行關聯,查詢大於90分的人的姓名、分數、年齡。演示了對hive的常用操作(例如刪除表、新建表、載入表資料、儲存表資料)
然後打包遞交到 spark集群中執行。具體實現如下:
1.準備資料
在hdfs檔案的對應目錄下,上傳兩個檔案(當然也可以放在本地。): people.txt和 peoplescores.txt,peo,pleple.txt檔案
是人員資訊表,包括人員姓名和年齡,資訊; peoplescores.txt是人員分數表,包括人員姓名和分數資訊。
上傳資料檔案:
scala**實現:
更新中。。。。
SparkSQL操作Hive資料來源
將hive安裝目錄中conf目錄下的hive site.xml拷貝至spark安裝目錄下的conf目錄。然後啟動sparkshell,執行 前者為元資料,後者為hive中的庫,現在在命令列中已經可以直接操作hive了。package main.com.sh import org.apache.spa...
Spark sql與Hive的關係
spark sql 在某些部分是重用的hive的東西,比如語法解析 元資料儲存,到執行計畫的翻譯部分。hiveql可以翻譯成mapreduce執行,也可以翻譯成spark執行計畫執行。在同時安裝了hive和spark時,我使用hive下的beeline執行hql,執行引擎是mapreuce 使用sp...
SparkSql實現Mysql到hive的資料流動
今天去面試了一波,因為排程系統採用了sparksql實現資料從mysql到hive,在這一點上面試官很明顯很不滿我對於spark的理解,19年的第乙個面試就這麼掛了。有問題不怕,怕的是知道了問題還得過且過。現在就來梳理下我的專案是怎麼使用spark導數的 第一步 把mysql中的表放入記憶體 pro...