Hive可以運行保存在文件里面的一條或多條的語句,只要用-f參數,一般情況下,保存這些Hive查詢語句的文件通常用.q或者.hql后綴名,但是這不是必須的,你也可以保存你想要的后綴名。假設test文件里面有一下的Hive查詢語句:
select * from p limit 10; select count(*) from p;
那么我們可以用下面的命令來查詢:
[wyp@wyp hive-0.11.0-bin]$ bin/hive -f test ........這里省略了一些輸出........... OK 196 242 3 881250949 20131102 jx 186 302 3 891717742 20131102 jx 22 377 1 878887116 20131102 jx 244 51 2 880606923 20131102 jx 166 346 1 886397596 20131102 jx 298 474 4 884182806 20131102 jx 115 265 2 881171488 20131102 jx 253 465 5 891628467 20131102 jx 305 451 3 886324817 20131102 jx 6 86 3 883603013 20131102 jx Time taken: 4.386 seconds, Fetched: 10 row(s) ........這里省略了一些輸出........... OK 4000000 Time taken: 16.284 seconds, Fetched: 1 row(s)
如果你配置好了Hive shell的路徑,你可以用SOURCE命令來運行那個查詢文件:
[wyp@wyp hive-0.11.0-bin]$ hive hive> source /home/wyp/Documents/test; ........這里省略了一些輸出........... OK 196 242 3 881250949 20131102 jx 186 302 3 891717742 20131102 jx 22 377 1 878887116 20131102 jx 244 51 2 880606923 20131102 jx 166 346 1 886397596 20131102 jx 298 474 4 884182806 20131102 jx 115 265 2 881171488 20131102 jx 253 465 5 891628467 20131102 jx 305 451 3 886324817 20131102 jx 6 86 3 883603013 20131102 jx Time taken: 4.386 seconds, Fetched: 10 row(s) ........這里省略了一些輸出........... OK 4000000 Time taken: 16.284 seconds, Fetched: 1 row(s)
