hive查看数据库里库的信息_Hive高阶之显示数据库名称和字段名

本文介绍了如何在Hive中显示数据库名称和字段信息。包括临时设置:显示当前数据库(通过设置`hive.cli.print.current.db`为`true`)、显示数据表字段(通过设置`hive.cli.print.header`为`true`),以及去除字段前的表名(通过设置`hive.resultset.use.unique.column.names`为`false`)。此外,还讲述了如何通过修改`hive-site.xml`配置文件使设置永久生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在hive中默认是不显示数据库的名称和数据表的字段名称的,这样我们在hive进行查询的时候就会发现不是很方便。默认hive的客户端执行方式如下:

[root@node3 ~]# sudo -u hive hive

Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.15.2-1.cdh5.15.2.p0.3/jars/hive-common-1.1.0-cdh5.15.2.jar!/hive-log4j.properties

WARNING: Hive CLI is deprecated and migration to Beeline is recommended.

hive> show databases;

OK

default

test

Time taken: 1.219 seconds, Fetched: 2 row(s)

hive> show tables;

OK

emp

Time taken: 0.085 seconds, Fetched: 8 row(s)

hive> select * from emp;

OK

7369 SMITH CLERK 7902 1980-12-17 800.0 NULL 20

7499 ALLEN SALESMAN 7698 1981-2-20 1600.0 300.0 30

......

7934 MILLER CLERK 7782 1982-1-23 1300.0 NULL 10

Time taken: 0.768 seconds, Fetched: 14 row(s)

hive>

如何才能让客户端显示我们想知道的数据库和字段信息呢?

1.显示数据库信息

临时方式是在hive客户端设置参数:hive.cli.print.current.db为true

hive> set hive.cli.print.current.db;

hive.cli.print.current.db=false

hive> set hive.cli.print.current.db=true;

hive (default)> use test;

OK

Time taken: 0.101 seconds

hive (test)>

可以看出当前的数据库已经显示在hive提示符的后面。切换数据库后会显示新的数据库在后面。

2.显示数据表字段

hive默认是不显示数据表的字段的,通过设置参数:hive.cli.print.header为true就可以显示字段名称。

hive (test)> select * from emp;

OK

7369 SMITH CLERK 7902 1980-12-17 800.0 NULL 20

......

7934 MILLER CLERK 7782 1982-1-23 1300.0 NULL 10

Time taken: 0.185 seconds, Fetched: 14 row(s)

hive (test)> set hive.cli.print.header=true;

hive (test)> select * from emp;

OK

emp.empno emp.ename emp.job emp.mgr emp.hiredate emp.sal emp.comemp.deptno

7369 SMITH CLERK 7902 1980-12-17 800.0 NULL 20

......

7934 MILLER CLERK 7782 1982-1-23 1300.0 NULL 10

Time taken: 0.102 seconds, Fetched: 14 row(s)

可以看出字段名称都显示在查询结果的第一行了。但是我们发现,表名称也显示出来了,这是为了防止字段名出现重复的,所以在字段名前面加上了表名。

3.去除表名

表名显示在字段名称前面有时候感觉有点多余,这个表名是可以不显示的,设置参数hive.resultset.use.unique.column.names为false就可以不显示表名。

hive (test)> set hive.resultset.use.unique.column.names=false;

hive (test)> select * from emp;

OK

empno ename job mgr hiredate sal comm deptno

7369 SMITH CLERK 7902 1980-12-17 800.0 NULL 20

......

7934 MILLER CLERK 7782 1982-1-23 1300.0 NULL 10

Time taken: 0.08 seconds, Fetched: 14 row(s)

可以看出字段名称前面的表名已经没有了。

4.永久生效

前面三步的设置都是在当前客户端临时生效的,如果退出客户端,那么又会回到之前的设置,如何将这些设置永久生效呢?就需要修改hive-site.xml配置文件。在该文件中加入如下三个配置内容:

hive.cli.print.header

true

hive.resultset.use.unique.column.names

false

hive.cli.print.current.db

true

需要修改的是hive客户端所在的服务器上的hive-site.xml客户端,修改完后重新启动hive客户端,就可以看到参数已经生效了,下次重新启动客户端后该配置还是有效的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值