如何打印Hive输出

时间:2013-09-05 00:36:04

标签: mysql hadoop hive

如何让Hive打印出格式精美的结果,列名和空间很大,比如mysql?例如:

$ hive -f performanceStatistics.hql
...
Kill Command = /usr/lib/hadoop/bin/hadoop job  -kill job_201306211023_1053
Hadoop job information for Stage-1: number of mappers: 8; number of reducers: 1
2013-09-04 17:30:56,092 Stage-1 map = 0%,  reduce = 0%
2013-09-04 17:31:03,132 Stage-1 map = 25%,  reduce = 0%, Cumulative CPU 13.87 sec
...
MapReduce Total cumulative CPU time: 2 minutes 5 seconds 260 msec
Ended Job = job_201306211023_1053
MapReduce Jobs Launched:
Job 0: Map: 8  Reduce: 1   Cumulative CPU: 125.26 sec   HDFS Read: 1568029694 HDFS Write: 93 SUCCESS
Total MapReduce CPU Time Spent: 2 minutes 5 seconds 260 msec
OK
19.866045211878546  0.023310810810810812    10  0   824821  25  1684.478659112734   0.16516737901191694
Time taken: 34.324 seconds

如何使用列名和良好的间距获得结果?我还希望在PostgreSQL中有一个像mysql \ G或\ x这样的扩展视图。

2 个答案:

答案 0 :(得分:6)

使用

set hive.cli.print.header=true;

打印列名[1]。

对于间距,输出已经以制表符分隔,因此您可以进一步处理它。

[1] https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties#ConfigurationProperties-CommandLineInterface

答案 1 :(得分:3)

现在,您还可以使用Beeline命令行工具,该工具以漂亮的格式输出数据。 [0]

如果您想要垂直输出,例如MySQL \G,您可以设置--outputformat=vertical

[0] https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-Beeline%E2%80%93NewCommandLineShell