hive命令行小窍门

1.用户不需要退出hive CLi就可以执行bash shell命令,只要在命令前加!并且以分号结尾就可以了

hive> ! /bin/echo "hello world";
"hello world" 
hive> ! pwd;
/home/me/hivetest

hive CLI中不能使用需要用户进行输入的交互式命令,而且不支持shell的“管道”功能和文件名的自动补全功能。例如,

! ls *.hql;

这个命令表示的是查找文件名为*.hql的文件,而不是表示显示以。hql结尾的所有文件。



2.在hiveCLI中执行Hadoop的dfs命令,只需要将hadoop命令的关键字hadoop去掉,然后以分号结尾就可以;

hive> dfs  -ls / ;

这种命令的方式实际比在shell中直接执行hadoop dfs的命令更高效。因为hive不会重新起动jvm实例而是在hive的当前进程中完成。


hive使用--来进行注释。


3.输出列名。

hive> set hive.cli.print.header=true;

4.数据库名字大概是h开头的
hive>show databases like 'h.*';
human


5.删除库的时候后面加关键字“CASCADE”,hive会先删除该库中的所有表在删除数据库。默认的关键字为“RESTRICT“意思是,用户必须先删除该库中的所有表这个操作才会成功。

hive> DROP DATABASE IF EXISTS  testdb CASCADE;


6.列出非当前数据库下的表

hive> show tables in mydb;
hive> show tables 'my.*'  

7.查询表的详细信息

hive> descibe extended mydb.testtable
使用formatted代替extended可以得到更丰富的信息

8.只查看某一列的信息,只需要写出列名

hive> desc mydb.testtable.col1


9.严格检查查询语句的条件中是否添加了分区的查询条件

hive>set give.mapred.mode=strict;
设置之后如果对分区表进行查询而where子句没有加分区过滤,将会禁止提交这个任务。与其相反的关键字是”nonstrict“


10hive不优先进入mr的设置

set hive.exec.mode.local.auto=true;







  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值