Hive通過 f呼叫sql檔案並進行傳參

2021-09-08 12:47:15 字數 917 閱讀 1952

有時候我們需要從hive中獲取需要的資料進行**的編寫,這就需要我們將查詢到的語句輸出到文件中,我們可以使用-e這個引數,例如:

hive -e 'select * from area where code=202020' >> /root/files/a.csv
但是有時候sql語句會異常複雜或者語句較多,這個時候我們可以使用-f引數,將所有的sql語句寫到乙個檔案中,然後hive呼叫這個檔案。例如:將sql語句存放到a.sql中,然後執行如下的命令

hive -f ./a.sql >> /root/files/a.csv
不僅如此,在hive 1.0之後,hive還支援了引數傳遞,例如上例中的code引數,如果我們要實現引數傳遞,可以使用如下的方法:

a.sql中的sql語句修改為:

select * from area where code='$';

或select * from area where code='$';

hive執行命令如下:

hive -hiveconf code=370202 -f a.sql >> /root/files/a.csv

或hive -hivevar code=370202 -f a.sql >> /root/files/a.csv

注意:hive支援多引數的傳遞!如果涉及多個引數,可以使用如下形式:

hive -hiveconf 引數1=引數值1 -hiveconf 引數2=引數值2... -f a.sql >> /root/files/a.csv

或hive -hivevar 引數1=引數值1 -hivevar 引數2=引數值2... -f a.sql >> /root/files/a.csv

C 呼叫並執行SQL指令碼檔案

讓c 程式直接執行sql指令碼檔案,類似ssms直接開啟sql檔案並執行一樣,搜尋了一下結果還真有,不過需要借用mssql的幾個類庫及命名空間 microsoft.sqlserver.connectioninfo.dll microsoft.sqlserver.smo.dll microsoft.s...

對sql檔案進行讀取並通過JDBC批量執行

public class mysqlhandle static catch exception e 建構函式,包括連線資料庫等操作 public mysqlhandle catch exception e 帶引數建構函式,用於指定引數連線資料庫 public mysqlhandle string d...

Hive呼叫python處理本地檔案

在python編譯器中寫python檔案 本次操作是處理 號碼的資料混亂問題 import sys for line in sys.stdin for word in line if ord word 48 or ord word 57 line line.replace word,if len l...