Hive Query中的格式输出

时间:2015-09-28 09:30:59

标签: hadoop hive

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

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

2 个答案:

答案 0 :(得分:3)

以下声明可能会增加您的可读性。

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

还可以使用以下语句打印标题信息。

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

答案 1 :(得分:2)

我迟到了4年,但这可能会帮助某人:)

选项1 -使用直线:可以很好地格式化表格输出并以竖线字符“ |”定界。但是,它也会填充数据,因此,如果您将粘贴复制到Excel之类的文件中,则必须处理空格填充。

选项2 -将输出重定向到文件:如果您使用hive -S -f <file_name>hive -e "select statement here"运行脚本,则可以使用标准将输出重定向到文件Unix重定向运算符>。这需要一些努力,因为您可能必须将选项卡转换为管道。例如。以下命令为您提供了以竖线分隔的列

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

选项3 -如果您使用Jupyter,请使用PyHive和Pandas在笔记本电脑内部显示数据。这是有关PyHive的tutorial