1. 程式人生 > >HIVE執行、裝載資料以及shell結合有關的總結

HIVE執行、裝載資料以及shell結合有關的總結

在寫hive中常用的方法時,感覺到那個頁面只適合寫函式等方法性的東西,沒法對一個很常用的東西做深入探究總結,顧新開一個頁面來詳細介紹HIVE的深入綜合性操作。函式頁面內容見:https://blog.csdn.net/xxzhangx/article/details/81009738

注:內容來自自己工作總結以及學習《Hive程式設計指南》總結

hive 執行

在shell介面輸入hive –help,就可以得到命令列引數。注意:這裡給的h2cmd,是我這裡做了修改。
hive 命令列介面

這裡重點介紹-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

與shell結合