我正在使用这样的(简化)查询来获取我的配置单元数据库的状态:
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
答案 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。