hive默认查询不会显示列名, 当一个表字段比较多的时候,往往看不出值与列之间的对应关系,对日常查错及定位问题带来不便,应同事要求,看了HIVE CLI源码,做了下些许调整, 加入列头打印及行转列显示功能
未开启行转列功能之前:
- hive>
- >
- > select * from example_table where dt='2012-03-31-02' limit 2;
- OK
- 1333133185 0cf49387a23d9cec25da3d76d6988546 3CD5E9A1721861AE6688260ED26206C2 guanwang 1.1 3d3b0a5eca816ba47fc270967953f881 192.168.1.2.13331317500.0 NA 031/Mar/2012:02:46:44 +080 222.71.121.111 2012-03-31-02
- 1333133632 0cf49387a23d9cec25da3d76d6988546 3CD5E9A1721861AE6688260ED26206C2 10002 1.1 e4eec776b973366be21518b709486f3c 110.6.100.57.1332909301867.6 NA 0 31/Mar/2012:02:54:16 +080 110.6.74.219 2012-03-31-02
- Time taken: 0.62 seconds
开启行转列功能之后:
- set hive.cli.print.header=true; // 打印列名
- set hive.cli.print.row.to.vertical=true; // 开启行转列功能, 前提必须开启打印列名功能
- set hive.cli.print.row.to.vertical.num=1; // 设置每行显示的列数
- > select * from example_table where pt='2012-03-31-02' limit 2;
- OK
- datetime col_1 col_2 channel version pcs cookie trac new time ip
- datetime=1333133185
- col_1=0cf49387a23d9cec25da3d76d6988546
- clo_2=3CD5E9A1721861AE6688260ED26206C2
- channel=test_name1
- version=1.1
- pcs=3d3b0a5eca816ba47fc270967953f881
-
cookie=192.168.1.2.13331317500.0
-
trac=NA
- new=0
- time=31/Mar/2012:02:46:44 +080
- ip=222.71.121.111
- -------------------------Gorgeous-split-line-----------------------
- datetime=1333133632
-
col_1=0cf49387a23d9cec25da3d76d6988546
-
col_2=3CD5E9A1721861AE6688260ED26206C2
- channel=test_name2
- version=1.1
- pcs=e4eec776b973366be21518b709486f3c
-
cookie=110.6.100.57.1332909301867.6
-
trac=NA
- new=0
- time=31/Mar/2012:02:54:16 +080
- ip=110.6.74.219
- --------------------------Gorgeous-split-line-----------------------
- Time taken: 0.799 seconds
开启行转列功能后, 每一行都已列显示, 值前面都加上列名, 方便问题查找!
分享到:
相关推荐
### Hive表修改列名后内容为空的问题及解决办法 #### 一、问题描述 在使用Hive进行数据处理时,可能会遇到需要修改表结构的情况,比如重命名某个字段(列)。然而,在某些情况下,特别是在使用Orc或Parquet这两种...
描述中提到的“desc table1”命令是Hive中用于获取表详细信息的标准命令,包括列名、列类型以及列的注释。在未改造的Hive版本中,由于编码问题,中文注释可能无法正确解析和显示。而在改造后的版本中,这个命令应该...
- **建表** 包括定义列名、列数据类型和表属性。例如:`CREATE TABLE my_table (col1 INT, col2 STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';` - **修改表** 可以增加字段、更改字段属性或重命名表名...
这里,`STORED BY`指定了HBase的存储处理类,`WITH SERDEPROPERTIES`定义了列族和列的映射,`:key`表示HBase的行键,`cf1:val`和`cf2:val`是列族和列。`TBLPROPERTIES`指定了HBase表的名称。 然而,在执行上述创建...
- **更改列**:可以使用`ALTER TABLE table_name CHANGE COLUMN old_column new_column data_type [COMMENT column_comment]`来修改表中的列名或数据类型。 - **添加/替换列**:`ALTER TABLE table_name ADD COLUMN ...
- 特定列查询:列出需要的列名,如`SELECT empno, ename FROM emp;` 2. **列别名** - 使用`AS`关键字可以为列设置别名,提高查询结果的可读性,如`SELECT ename AS name, deptno dn FROM emp;` 3. **算数运算符*...
Hive支持创建索引以优化查询性能,但这个功能并不广泛使用,因为Hive主要针对大数据的离线分析。 11. **表的分区和桶**: 分区允许将大表逻辑上划分为更小的部分,以便于查询优化。例如,`CREATE TABLE my_table ...
`vim-hive` 是一个专门为 Vim 编辑器设计的插件,其主要目的是为了提供 Hive 查询语言(HQL)的语法高亮显示功能。这个插件使得在 Vim 中编写 Hive 查询变得更加方便,通过突出显示不同部分的语法规则,帮助用户更好...
3. **元数据存储(Metastore)**:存储所有表和分区的结构化信息,如列名、列类型、序列化器和反序列化器,这些信息通常保存在像 MySQL 或 Derby 这样的关系数据库中。 4. **解析器**:负责将用户的 HQL 查询语句...
4. **Hive元数据库**:元数据库存储了Hive的所有元数据,如表名、列名、分区信息等,这些信息用于解析HQL查询并生成相应的MapReduce任务。元数据库可以使用内置的Derby数据库,也可以配置成使用更强大的MySQL或...
#### 一、Hive概述及架构 **1.1 Hive架构** Hive架构主要由以下几个部分组成: - **用户接口**:主要包括CLI(命令行界面)、Client(客户端)以及WUI(Web用户界面)。其中CLI是最常用的用户接口,启动时会同时...
2. **更改列名及注释**: ```sql ALTER TABLE 表名 CHANGE COLUMN column_old column_new VARCHAR(2000) COMMENT '注释'; ``` 3. **增加列**: ```sql ALTER TABLE table_name ADD COLUMNS (col_name data_type...
本章节主要围绕分布式SQL计算工具——Hive进行深入讲解,包括Hive的基本概念、语法结构以及如何通过Hive对大数据进行高效管理与查询。具体知识点涵盖了数据库操作、数据表操作、数据查询方法、内置函数应用以及具体...
本次实验的主要目的是让学生深入理解 Hive 在数据处理中的功能,并熟悉其基本操作,包括创建、加载、插入、更新、显示、描述和删除等 SQL 命令。实验采用的环境为 Linux 操作系统,搭配 Hadoop 3.1.3、JDK 1.8 和 ...
而DataFrame是分布式的Row对象集合,其中每个Row对象代表一行记录,并且具有明确的列名和类型信息。 - **元数据管理**:DataFrame携带了详细的结构信息(schema),即包含了数据集中的列名和类型等元数据,而RDD则不...
- **4.2.1 Parquet读写**:Parquet是一种高效的列式存储格式,支持高效的查询和压缩。 - **4.2.2 解析分区信息**:Parquet文件支持动态分区,可以根据文件路径自动解析分区信息。 - **4.2.3 Schema合并**:当多个...
3. **Hive表格**:定义列名、列类型和分区,数据可以动态或静态分区。 4. **MapReduce**:Hive将HQL查询转换为MapReduce任务在Hadoop集群上执行,处理大量数据。 5. **Hive SerDe**:序列化和反序列化库,用于解析...
- **正确语法**: `UPDATE 表名 SET 列名=更新后的值 WHERE 限定语句;` - **解析**: 选项D正确,注意赋值符号应为`=`而非`==`。 ### 多选题解析 #### 1. 查询价格最高的前20个商品 - **ORDER BY DESC**: 降序排列...