第1关:Hive 的 Alter Table 操作

这篇具有很好参考价值的文章主要介绍了第1关:Hive 的 Alter Table 操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

相关知识

为了完成本关任务,你需要掌握: 1.Alter Table 命令

Alter Table 命令

Alter Table 命令 可以在 Hive 中修改表名,列名,列注释,表注释,增加列,调整列顺序,属性名等操作。

1.修改表名

 
  1. ALTER TABLE table_name RENAME TO new_table_name;

此命令可以将表 table_name 重命名为 new_table_name,数据所在的位置改变,但是分区名都没有改变。 这是一个hive 根据课程划分学生的分区表,最后一列为分区的课程。

现在将表名 test1 改为新表名 student。

 
  1. alter table test1 rename to student;

第1关:Hive 的 Alter Table 操作,Educoder,hadoop,hive,hive,hadoop,数据仓库

再次查询 test1 内容,系统提示找不到 test1 表了。查询新表名 student ,查询出来的数据为原表 test1 的内容,可以看到表分区的名字并没有修改,只是数据所在的位置发生改变。

2.修改列名和注释

 
  1. ALTER TABLE table_name CHANGE col new_col STRING COMMENT 'xxxxxx'

查看 student 的表结构

第1关:Hive 的 Alter Table 操作,Educoder,hadoop,hive,hive,hadoop,数据仓库

修改 student 表中列名 stu_no 为 stu_id,并将改列int 数据类型改为 string 数据类型,添加注释。

 
  1. alter table student change stu_no stu_id string comment 'Student number';

再次查看表结构,发生了以下改变

第1关:Hive 的 Alter Table 操作,Educoder,hadoop,hive,hive,hadoop,数据仓库

3.改变列的位置

 
  1. ALTER TABLE table_name CHANGE [col1 new_col column_type] [FIRST|AFTER col2]

修改列的位置,FIRST将列放在第一列,AFTER col2是将 col1 放在 col2 的后面一列。

第1关:Hive 的 Alter Table 操作,Educoder,hadoop,hive,hive,hadoop,数据仓库

修改后发现列数据不会根据列的位置发生改变,因为Hive 中不支持对数据的改写和添加,所有的数据都是在加载的时候中确定好的。注意换列的位置的时候注意数据类型,或者在插入数据前将列位置排序好,最后将数据插入进来。 将 stu_id 列放回第一行。

第1关:Hive 的 Alter Table 操作,Educoder,hadoop,hive,hive,hadoop,数据仓库

4.增加列

 
  1. ALTER TABLE table_name ADD COLUMNS (col_name data_type [CONMMENT col_comment], ...);

ADD COLUMNS 允许用户在当前列的末尾,分区列之前添加新的列。

在 student 表中插入一列 score

 
  1. alter table student add columns (score string comment 'Course results');

第1关:Hive 的 Alter Table 操作,Educoder,hadoop,hive,hive,hadoop,数据仓库

插入后,数据查询出来发现 score 新增出来,但是数据为空值。

5.更新列

 
  1. ALTER TABLE table_name REPLACE COLUMNS (col_name data_type [CONMMENT col_comment], ...);

REPLACE COLUMNS 允许用户更新列,更新的过程是先删除当前的列,然后在加入新的列。

只保留学生学号 stu_id 和学生姓名 stu_name 列。

 
  1. alter table student replace columns (stu_id string,stu_name string);

查询表结构和表数据发现 student 只保留了 stu_id 和stu_name 两列,其他的列被删除了(更新列需慎用)。

但是数据并没有删除,只是没有对应的列所以没有显示出来,如果这个时候加上两列的话,数据依旧可以显示。

第1关:Hive 的 Alter Table 操作,Educoder,hadoop,hive,hive,hadoop,数据仓库

第1关:Hive 的 Alter Table 操作,Educoder,hadoop,hive,hive,hadoop,数据仓库

加分区表字段需要加上 hiveQL 语句要加上 CASCADE 参数。

6.增加表的属性

 
  1. ALTER TABLE table_name SET TBLPEOPERTIES table_properties;

用户可以使用这个语句增加表属性,table_properties的结构为(property_name=property_value,property_name=property_value, ...),目前last_modified_time(最后修改时间),last_modified_user(做最后修改的用户)是由 Hive 自动管理的。用户可以向列中添加自己的属性,然后使用DISCRIBE EXTEBDED TABLE来获取这些信息。

第1关:Hive 的 Alter Table 操作,Educoder,hadoop,hive,hive,hadoop,数据仓库

 
  1. #内部表转外部表
  2. alter table table_name set TBLPROPERTIES ('EXTERNAL'='TRUE');
  3. #外部表转内部表
  4. alter table table_name set TBLPROPERTIES ('EXTERNAL'='FALSE');

7.增加 SerDE 属性

 
  1. ALTER TABLE table_name SET SERDE serde_class_name [WHIT SERDEPROPERTIES serde_properties];
  2. ALTER TABLE table_name SET SERDEPROPERTIES serde_properties;

上面两个命令都允许用户向 SerDE 对象增加用户定义的元数据。Hive为了序列化和反序列化数据,将会初始化SerDE属性,并将属性传给表的 SerDE。这样用户可以为自定义的SerDe 存储属性。上面serde_properties的结构为(property_name=property_value,property_name=property_value, ...)。

 
  1. #设置表字符格式
  2. ALTER TABLE student SET SERDEPROPERTIES ('charset' = 'GBK');

8.修改表文件格式和组织

 
  1. ALTER TABLE table_name SET FILEFORMAT file_format;
  2. ALTER TABLE table_name CLUSTERED BY (col_name, col_name, ...)[SORTED By (col_name, ...)] INTO num_buckets BUCKETS;

上面两个命令都修改了表的物理属性。

编程要求

根据相关知识,在右侧命令行进行操作,Hadoop 服务已经自动启动了,只需要输入hive命令进入 Hive 客户端即可进行操作。 1.创建表

 
  1. create table employee(id int,name string,department string,salary float)row format delimited fields terminated by ",";

2.导入数据

 
  1. load data local inpath '/data/workspace/myshixun/data/emp.txt' into table employee;

3.使用 Alter Table 进行操作文章来源地址https://www.toymoban.com/news/detail-730380.html

  • 下表包含表字段,显示的字段要被更改
字段名 数据类型 更改字段名称 转换为数据类型
id int emp_id int
name string emp_name string
department string department string
salary float salary double
  • 新增列 hiredate 类型为 date。
# hive

#hive>create table employee(id int,name string,department string,salary float)row format delimited fields terminated by ",";

#hive> load data local inpath '/data/workspace/myshixun/data/emp.txt' into table employee;
Loading data to table default.employee

hive> alter table employee change id emp_id int ;
OK
Time taken: 0.115 seconds

hive> alter table employee change name emp_name string ;
OK
Time taken: 0.052 seconds

hive> alter table employee change  salary salary double ;
OK
Time taken: 0.051 seconds

hive> alter table employee add columns (hiredate date);

到了这里,关于第1关:Hive 的 Alter Table 操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hive表DDL操作(二) 第2关:Create/Drop/ALTER 索引

    相关知识 为了完成本关任务,你需要掌握:1. 如何导入本地数据到 hive 的表中,2. 如何创建索引,3. 如何删除索引。 导入本地数据到 hive 表中 /home/shoppings.txt 目录下数据格式如下: 在数据库 shopping 中根据数据分隔方式创建表 items_info : CREATE TABLE IF NOT EXISTS shopping.items_info

    2024年02月04日
    浏览(41)
  • Hive表DDL操作(二)第1关:Create/Drop/Alter 视图

    相关知识 为了完成本关任务,你需要掌握: 1.如何创建视图; 2.如何修改视图; 3.如何删除视图。 Create 创建视图 Hive 支持 RDBMS 视图的所有功能,包括创建、删除、修改视图。 创建视图语法: CREATE VIEWS [IF NOT EXISTS] view_name[( [COMMENT column_comment],…)] [COMMENT view_comment] [TBLPROPER

    2024年04月17日
    浏览(90)
  • 一、Hive数据仓库应用之Hive部署(超详细步骤指导操作,WIN10,VMware Workstation 15.5 PRO,CentOS-6.7)

    Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务运行。Hive具有稳定和简单易用的特性,成为了当前企业在构建企业级数据仓库时使用较为普遍的大数据组件之一。 本实验内容主要

    2024年02月03日
    浏览(34)
  • 二百零九、Hive——with嵌套语句报错:hadoop.hive.ql.parse.SemanticException: Line 2:5 Ambiguous table alias ‘t2‘

    在Hive的with嵌套语句时,HQL报错Line 2:5 Ambiguous table alias \\\'t2\\\' org.apache.hadoop.hive.ql.parse.SemanticException: Line 2:5 Ambiguous table alias \\\'t2\\\' 看报错提示,Ambiguous table alias \\\'t2\\\',似乎是with嵌套子语句命名t2报错,但是我试了很多其他命名,都报类似的错误,如果大家知道原因的话还望告知,谢

    2024年01月20日
    浏览(43)
  • Hive数据仓库---Hive的安装与配置

    Hive 官网地址:https://hive.apache.org/ 下载地址:http://www.apache.org/dyn/closer.cgi/hive/ 把安装文件apache-hive-3.1.2-bin.tar.gz上传到master节点的/opt/software目 录下,执行以下命令把安装文件解压到/opt/app目录中 进入/opt/app目录,为目录apache-hive-3.1.2-bin建立软件链接 即输入hive就相当于输入a

    2024年02月02日
    浏览(40)
  • educoder中Hive -- 索引和动态分区调整

    第1关:Hive -- 索引 第2关:Hive -- 动态分区调整

    2024年02月04日
    浏览(34)
  • 数据仓库 & Apache Hive

    目录 一、数据分析 1、数据仓库 1.1、数仓专注分析 1.2、数仓主要特征 1.3、数据仓库主流开发语言--SQL 2、Apache Hive 2.1、为什么使用Hive? 2.2、Hive和Hadoop关系 2.3、Hive架构图、各组件功能 2.4、Hive安装部署 2.4.1、Hive概念介绍 2.4.2、安装前准备     数据仓库 (英语:Data Warehous

    2024年01月22日
    浏览(45)
  • Hive数据仓库

    数据仓库(英语:Data Warehouse,简称数仓、DW),是一个用于存储、分析、报告的数据系统。 数据仓库的目的是构建面相分析的集成化数据环境,分析结果为企业提供决策支持(Decision Support)。 数据仓库本身并不“产生”任何数据,其数据来源不同外部系统; 同时数据仓库

    2024年02月15日
    浏览(38)
  • 【Hive】——数据仓库

    数据仓库(data warehouse):是一个用于存储,分析,报告的数据系统 目的:是构建面向分析的集成化数据环境,分析结果为企业提供决策支持 特点: 数据仓库本身不产生任何数据,其数据来源于不同外部系统 数据仓库也不需要消费任何的书,其结果开放给各个外部应用使用

    2024年02月04日
    浏览(39)
  • Hive 数据仓库介绍

    目录 ​编辑 一、Hive 概述 1.1 Hive产生的原因 1.2 Hive是什么? 1.3 Hive 特点 1.4 Hive生态链关系 二、Hive架构 2.1 架构图 2.2 架构组件说明 2.2.1 Interface 2.2.1.1 CLI 2.2.1.2 JDBC/ODBC 2.2.1.3 WebUI 2.2.2 MetaData 2.2.3 MetaStore 2.2.4 Hiveserver2 2.2.5 Driver 2.2.5.1 解释器 2.2.5.2 编译器 2.2.5.3 优化器 2.2.5.4 执行

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包