Hive - 增删改 Hive 表字段
一.引言
使用 Hive 表时由于数据的变换经常需要调整 Hive 表字段结构,这里记录一下常用方法。先创建一个测试表 tmp_change_column,包含两个字段 a,b 和分区标识 dt :
function createTable() {
hive -e "
create table if not exists tmp_change_column (
a string,
b string
)
PARTITIONED BY(dt string)
row format delimited fields terminated by '\t'
"
}
createTable
二.增加字段
1.末尾增加字段
在原始列名 a,b 基础上增加字段 c
# 增加一列
hive -e "alter table tmp_change_column add columns (c string comment '增加一列');"
2.增加到指定位置
添加新字段到指定位置需要两步,首先将字段添加至末尾,其次通过 change 方法修改其顺序,这里首先将 b_extend 添加至字段末尾,随后 change b_extend after b,则达到指定位置目的
# 增加一列
hive -e "alter table tmp_change_column add columns (b_extend string comment '指定位置');"
# 调整位置
hive -e "alter table tmp_change_column change b_extend b_extend string after b;"
三.删除字段
1.删除末尾字段
删除字段的原理是替代,用新的字段名替代原有的字段,舍弃掉最后的字段 c
# 删除一列
hive -e "alter table tmp_change_column REPLACE COLUMNS (
a string,
b string,
b_extend string);"
2.删除指定字段
其实和删除末尾字段一致,只需替换 REPLACE COLUMNS 内字段即可,现在删除字段 b
# 删除指定列
hive -e "alter table tmp_change_column REPLACE COLUMNS (
a string,
b_extend string);"
四.修改字段
1.修改字段名称
将字段 b_extend 改为字段 b
# 修改列名
hive -e "alter table tmp_change_column change b_extend b string;"
2.修改字段类型
常用的类型有 STRING,BOOLEAN,INT,FLOAT,DOUBLE,CHAR 等,把字段 b 的类型修改为 Double
# 修改类型
hive -e "alter table tmp_change_column change b b DOUBLE;"
3.修改字段注释
除了名称和类型,注释也可以相对应修改
# 修改注释
hive -e "alter table tmp_change_column change b b DOUBLE comment '修改注释';"
4.同时修改名称,类型,注释
上述操作也可以合并,一次性修改字段的多个属性
# 全部修改
hive -e "alter table tmp_change_column change b b_change STRING comment '再次修改注释'"
五.总结
Hive 表字段的相关操作大致就这些,有一点需要注意,增加字段后,Hive 表当前对应的 Location 地址并不会自动补上该数据,但此时已经可以 select 从表中获取该字段,会全部获得 Null,后续可以通过 select 操作补齐该数据,或者用新的地址 location 补齐该字段。
Hive - 增删改 Hive 表字段相关推荐
- python 全栈开发,Day62(外键的变种(三种关系),数据的增删改,单表查询,多表查询)...
一.外键的变种(三种关系) 本节重点: 如何找出两张表之间的关系 表的三种关系 一.介绍 因为有foreign key的约束,使得两张表形成了三种了关系: 多对一 多对多 一对一 二.重点理解如果找出 ...
- day38 mycql 初识概念,库(增删改查),表(增删改)以及表字段(增删改查),插入更新操作...
在Navicat中把已经生成的表逆向成模型 数据库上,右键-逆向数据库到模型 ego笔记: 增删改查 文件夹(库)增create database day43 charset utf8;改alter ...
- sql 增删改 合表操作
Day4 Task46 Union的用法 Union(可以将查询结果集相加) 案例:找出工作岗位是salesman和manager的员工 第一种: Select ename,job from emp ...
- 增删改数据库表中的字段名
1.修改字段名: 修改字段名称用change,后边是新字段+旧字段+类型就可以了 ALTER TABLE grade CHANGE creat_date create_date date; 旧值为cr ...
- 跟燕十八学习PHP-第十五天-php增删改查表数据
/** 燕十八 公益PHP培训 课堂地址:YY频道88354001 学习社区:www.zixue.it **/ <!DOCTYPE html PUBLIC "-//W3C//DTD X ...
- mysql-Navicat-新增或修改表字段SQL语句整理
-- 新增-字符串参数-形式 ALTER TABLE address ADD COLUMN address_province varchar(50) CHARACTER SET utf8 COLLAT ...
- django,form表单,数据库增删改查
Django 02 复习: Django下载: 在命令行输入: pip3 install django==1.11.11 在这里不要用最新的3.7,推荐使用3.6/3.5/ ...
- Oracle 创建表空间,创建表、数据增删改
Oracle 创建表空间,创建表.数据增删改 创建表空间 创建用户 用户授权 表的创建.修改与删除 创建表 数据类型 创建表的同时指定表空间 修改表 删除表 数据增删改 插入数据 修改数据 删除数据 ...
- mysql表的增删改select 和 where
创建表 create table t1(id int primary key auto_increment,username char(12) not null,sex enum('male','fe ...
最新文章
- JavaScript面向对象与传统面向对象的一点区别
- 以为是行废代码,原来有这作用!
- 关于python语言、下列说法不正确的是-关于Python中的字符串,下列说法错误的是()...
- 通过 WIFI 用 adb 调试 Android 设备
- python数据结构算法优势_Python数据结构与算法(一)----- 算法效率
- Linux进程通信的四种方式——共享内存、信号量、无名管道、消息队列|实验、代码、分析、总结
- Linux的应用领域
- java负数用什么类型定义_(转) Java中的负数及基本类型的转型详解
- ROS-Kinetic安装turtlebot-3并仿真
- C语言关键字浅析-signed
- 计算混响时间的意义_混响是什么意思,混响时间计算公式汇总,混响器的
- 利用CSF算法实现地面点云的粗分割
- 小程序的框架研究报告(开发框架、UI框架)
- 基于NAR神经网络的时间序列预测
- VR乒乓球项目Unity3D 开发经验整理,1总纲
- MySQL优化那些事
- 2023年度流行色出炉终于轮到火龙果和草莓熊制霸天下了 优漫动游
- ECharts之横向柱状图二
- 或许,这是最好的一款微信公众号编辑器!
- python word 插入转下页及接上页(win32com)