我知道你可以通过hive中的以下技巧从表中获取列名:
hive> set hive.cli.print.header=true;
hive> select * from tablename;
Run Code Online (Sandbox Code Playgroud)
是不是也有可能只是得到从表中的列名?
我不喜欢改变一个我只需要一次的设置.
我目前的解决方案如下:
hive> set hive.cli.print.header=true;
hive> select * from tablename;
hive> set hive.cli.print.header=false;
Run Code Online (Sandbox Code Playgroud)
这看起来过于冗长,反对DRY原则.
JJF*_*rd3 63
如果您只是想查看列名,那么这一行应该提供它而不更改任何设置:
describe database.tablename;
Run Code Online (Sandbox Code Playgroud)
但是,如果这对您的hive版本不起作用,则此代码将提供它,但您的默认数据库现在将是您正在使用的数据库:
use database;
describe tablename;
Run Code Online (Sandbox Code Playgroud)
小智 53
您还可以执行show columns in $table
或查看Hive,如何检索所有数据库的表列以访问Hive元数据