HIVE執行、裝載資料以及shell結合有關的總結
阿新 • • 發佈:2018-12-22
在寫hive中常用的方法時,感覺到那個頁面只適合寫函式等方法性的東西,沒法對一個很常用的東西做深入探究總結,顧新開一個頁面來詳細介紹HIVE的深入綜合性操作。函式頁面內容見:https://blog.csdn.net/xxzhangx/article/details/81009738
注:內容來自自己工作總結以及學習《Hive程式設計指南》總結
hive 執行
在shell介面輸入hive –help,就可以得到命令列引數。注意:這裡給的h2cmd,是我這裡做了修改。
這裡重點介紹-e,-f,–hiveconf,–hivevar這四個的用法
兩種執行方式
- hive -e
用於執行查詢類的語句,-e 後的後就是程式碼
hive -e "sql 程式碼"
hive中“一次使用”命令
hive -e "SELECT * FROM MYTABLE LIMIT 10"
也可以輸入到檔案中
hive -e "SELECT * FROM MYTABLE LIMIT 10" > /tmp/mytable/data.csv
檢視資訊
cat /tmp/mytable/data.csv
如果覺得在執行的時候出現很多不必要的中間log,可以加入-S,表示開啟靜默執行模式
hive -S -e "SELECT * FROM MYTABLE LIMIT 10" > /tmp/mytable/data.csv
- hive -f
用於執行sql檔案
hive -f data.hql
傳遞引數
這裡介紹兩種方法:hiveconf 和 hivevar,hiveconf屬於hive-site.xml下面配置的環境變數,hivevar為臨時變數。在執行時hiveconf必須帶上名稱空間,如${hiveconf:key},hivevar直接使用${key}即可。
- hiveconf 案例介紹
一次執行程式碼
hive --hiveconf pt_dt=2018-07-25 -e "SELECT * FROM MYTABLE WHERE pt_dt = "${hiveconf:pt_dt}" LIMIT 10" > /tmp/mytable/data.csv
執行檔案
data.hql的程式碼如下:
SELECT * FROM MYTABLE WHERE pt_dt = "${hiveconf:pt_dt}" LIMIT 10
在終端執行語句
hive --hiveconf pt_dt=2018-07-25 -f data.hql > /tmp/mytable/data.csv
- hivevar 案例介紹
一次執行
hive --hivevar pt_dt=2018-07-25 -e "SELECT * FROM MYTABLE WHERE pt_dt = "${pt_dt}" LIMIT 10" > /tmp/mytable/data.csv
執行檔案
SELECT * FROM MYTABLE WHERE pt_dt = "${pt_dt}" LIMIT 10
在終端執行語句
hive --hivevar pt_dt=2018-07-25 -f data.hql > /tmp/mytable/data.csv