配置单元查询中的格式输出

flseospp  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(414)

我使用这样一个(简化的)查询来获取配置单元数据库的状态:

show databases; 
show tables

但这有点让人困惑,因为它把所有的行都放在一起,就像这样:

default
curtime_test
datetime_test
datettime_test
hivesampletable
sensor
sensor_part_subset
sensor_part_subset1

有没有我可以很容易地格式化输出,也许添加一个标题或什么?我希望这样:

show databases
   default
show tables
   curtime_test
   datetime_test
   datettime_test
   hivesampletable
   sensor
   sensor_part_subset
   sensor_part_subset1

但这也可以:

---  show databases ---
default
---- show tables ---
curtime_test
datetime_test
datettime_test
hivesampletable
sensor
sensor_part_subset
sensor_part_subset1
ekqde3dh

ekqde3dh1#

我迟到了4年,但这可能对某人有所帮助:)
选项1-使用beeline:它可以很好地格式化表输出,并使用管道字符“|”进行分隔。但是,它也会填充数据,因此如果要复制粘贴到excel之类的东西中,则必须处理空格填充。
选项2-将输出重定向到文件:如果您正在使用 hive -S -f <file_name> 或者 hive -e "select statement here" 然后可以使用标准unix重定向操作符将输出重定向到文件 > . 这需要一些努力,因为您可能需要将选项卡转换为管道。e、 g.下面的命令提供管道分隔列

hive -e "select first_name, last_name from employee_db.employee;" | sed -e 's/\t/|/g' > output_file.csv

选项3-如果您使用jupyter,那么使用pyhive和pandas来显示笔记本本身中的数据。这里有一个关于pyhive的教程。

gajydyqb

gajydyqb2#

下面的语句可能会增加您案例的可读性。

select '------show databases----------';
show databases;
select '------show tables----------';
show tables;

也可以使用下面的语句打印标题信息。

set hive.cli.print.header=true;
show databases;
show tables;

相关问题