大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
hive修改字段类型语句:alter table 表名 change column 原字段名 新字段名 字段类型;
alter table user_chain change column u_register u_registe date;(u_register原类型为string类型)
这样修改会报一个错误:
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable to alter table. The following columns have types incompatible with the existing columns in their respective positions :
u_registe
原因分析:hive内部的类型转换的限制。总结为:
1、我们能够修改整型字段为double类型字段,因为double类型能够承载整型数据,
但是我们修改double类型字段为整型字段会有问题,因为整型字段不能够满足double数据
2、任何类型基本都可以转为字符串,任何double、float、int类型的数据都可以作为字符串处理
3、数据类型的转换为转换后的数据不会截断原来的数据
如果只想改变列的类型而不关心数据的准确性,可以设置set hive.metastore.disallow.incompatible.col.type.changes=false;
新增字段表
alter table 表名 add columns(字段名 数据类型)
修改表的字段顺序
ALTER TABLE t1 CHANGE column student student varchar(20) comment ‘学生姓名’ AFTER class;
这种修改的做法不建议用,只是逻辑上修改了字段,物理上并没有变化,对特定情况下的表有一定影响
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/196871.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...