From 220ff76b6483a283e0b2e3997f817d0710c294b3 Mon Sep 17 00:00:00 2001 From: paulgb Date: Mon, 22 Nov 2010 13:49:11 -0800 Subject: [PATCH] option to print column names in CLI --- .../java/org/apache/hadoop/hive/cli/CliDriver.java | 17 +++++++ .../java/org/apache/hadoop/hive/conf/HiveConf.java | 3 + conf/hive-default.xml | 6 ++ ql/src/test/queries/clientpositive/print_header.q | 13 +++++ .../test/results/clientpositive/print_header.q.out | 50 ++++++++++++++++++++ 5 files changed, 89 insertions(+), 0 deletions(-) create mode 100644 ql/src/test/queries/clientpositive/print_header.q create mode 100644 ql/src/test/results/clientpositive/print_header.q.out diff --git cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java index ca37dc5..82424eb 100644 --- cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java +++ cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java @@ -50,6 +50,8 @@ import org.apache.hadoop.hive.ql.processors.CommandProcessorFactory; import org.apache.hadoop.hive.ql.session.SessionState; import org.apache.hadoop.hive.ql.session.SessionState.LogHelper; import org.apache.hadoop.hive.shims.ShimLoader; +import org.apache.hadoop.hive.metastore.api.FieldSchema; +import org.apache.hadoop.hive.metastore.api.Schema; /** * CliDriver. @@ -144,6 +146,21 @@ public class CliDriver { } ArrayList res = new ArrayList(); + + if (HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_CLI_PRINT_HEADER)) { + // Print the column names + boolean first_col = true; + Schema sc = qp.getSchema(); + for (FieldSchema fs : sc.getFieldSchemas()) { + if (!first_col) { + out.print('\t'); + } + out.print(fs.getName()); + first_col = false; + } + out.println(); + } + try { while (qp.getResults(res)) { for (String r : res) { diff --git common/src/java/org/apache/hadoop/hive/conf/HiveConf.java common/src/java/org/apache/hadoop/hive/conf/HiveConf.java index db3c800..4ec35b8 100644 --- common/src/java/org/apache/hadoop/hive/conf/HiveConf.java +++ common/src/java/org/apache/hadoop/hive/conf/HiveConf.java @@ -315,6 +315,9 @@ public class HiveConf extends Configuration { HIVEFETCHOUTPUTSERDE("hive.fetch.output.serde", "org.apache.hadoop.hive.serde2.DelimitedJSONSerDe"), SEMANTIC_ANALYZER_HOOK("hive.semantic.analyzer.hook",null), + + // Print column names in output + HIVE_CLI_PRINT_HEADER("hive.cli.print.header", false); ; diff --git conf/hive-default.xml conf/hive-default.xml index 85b312f..2c348f2 100644 --- conf/hive-default.xml +++ conf/hive-default.xml @@ -36,6 +36,12 @@ + hive.cli.print.header + false + Whether to print the names of the columns in query output. + + + hive.exec.scratchdir /tmp/hive-${user.name} Scratch space for Hive jobs diff --git ql/src/test/queries/clientpositive/print_header.q ql/src/test/queries/clientpositive/print_header.q new file mode 100644 index 0000000..96380ab --- /dev/null +++ ql/src/test/queries/clientpositive/print_header.q @@ -0,0 +1,13 @@ + +set hive.cli.print.header=true; + +SELECT src1.key as k1, src1.value as v1, + src2.key as k2, src2.value as v2 FROM + (SELECT * FROM src WHERE src.key < 10) src1 + JOIN + (SELECT * FROM src WHERE src.key < 10) src2 + SORT BY k1, v1, k2, v2 + LIMIT 10; + +SELECT src.key, sum(substr(src.value,5)) FROM src GROUP BY src.key LIMIT 10; + diff --git ql/src/test/results/clientpositive/print_header.q.out ql/src/test/results/clientpositive/print_header.q.out new file mode 100644 index 0000000..e3946d7 --- /dev/null +++ ql/src/test/results/clientpositive/print_header.q.out @@ -0,0 +1,50 @@ +PREHOOK: query: SELECT src1.key as k1, src1.value as v1, + src2.key as k2, src2.value as v2 FROM + (SELECT * FROM src WHERE src.key < 10) src1 + JOIN + (SELECT * FROM src WHERE src.key < 10) src2 + SORT BY k1, v1, k2, v2 + LIMIT 10 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/pbutler/hive_2010-11-22_13-41-11_283_258399688654159660/-mr-10000 +POSTHOOK: query: SELECT src1.key as k1, src1.value as v1, + src2.key as k2, src2.value as v2 FROM + (SELECT * FROM src WHERE src.key < 10) src1 + JOIN + (SELECT * FROM src WHERE src.key < 10) src2 + SORT BY k1, v1, k2, v2 + LIMIT 10 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/pbutler/hive_2010-11-22_13-41-11_283_258399688654159660/-mr-10000 +k1 v1 k2 v2 +0 val_0 0 val_0 +0 val_0 0 val_0 +0 val_0 0 val_0 +0 val_0 0 val_0 +0 val_0 0 val_0 +0 val_0 0 val_0 +0 val_0 0 val_0 +0 val_0 0 val_0 +0 val_0 0 val_0 +0 val_0 2 val_2 +PREHOOK: query: SELECT src.key, sum(substr(src.value,5)) FROM src GROUP BY src.key LIMIT 10 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/tmp/pbutler/hive_2010-11-22_13-41-30_510_2595029549749893604/-mr-10000 +POSTHOOK: query: SELECT src.key, sum(substr(src.value,5)) FROM src GROUP BY src.key LIMIT 10 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/tmp/pbutler/hive_2010-11-22_13-41-30_510_2595029549749893604/-mr-10000 +key _c1 +0 0.0 +10 10.0 +100 200.0 +103 206.0 +104 208.0 +105 105.0 +11 11.0 +111 111.0 +113 226.0 +114 114.0 -- 1.6.6.5.g743753