问题导读:
1.hive通过什么命令可以执行文件中sql语句
2. source /home/wyp/Documents/test;与hive -f test的区别是什么?
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)
复制代码
|