[Hive]Hive分区表新增字段

一直没有尝试,被分区的概念吓到了,今天尝试了下,很简单

hive (default)> desc pms.test_cross_sale_path;
OK
col_name    data_type   comment
path_id string
visit_track_id  string
visit_product_id    bigint
visit_category_id   bigint
visit_brand_id  bigint
rcmd_track_id   string
rcmd_product_id bigint
rcmd_category_id    bigint
rcmd_brand_id   bigint
rcmd_algorithm_id   bigint
cart_track_id   string
cart_track_time string
cart_product_id bigint
cart_category_id    bigint
cart_brand_id   bigint
path_type   int
path_length int
path_list   string
session_id  string
gu_id   string
end_user_id string
ds  string
Time taken: 3.159 seconds

在上表中新增两个字段platform_id、tpa,类型均为int类型

hive (pms)> alter table pms.test_cross_sale_path add columns(platform_id int, tpa int);
FAILED: ParseException line 1:12 cannot recognize input near 'pms' '.' 'test_cross_sale_path' in alter table statement

这样执行会有问题,数据库名默认不支持,换种写法即可

hive (pms)> use pms;
OK
Time taken: 0.012 seconds
hive (pms)> alter table test_cross_sale_path add columns(platform_id int, tpa int);
OK
Time taken: 0.012 seconds

新增的字段将加到该表的最后,分区字段之前,并且在以前的分区中这两个字段都为NULL

hive (default)> desc pms.test_cross_sale_path;
OK
col_name	data_type	comment
path_id	string
visit_track_id	string
visit_product_id	bigint
visit_category_id	bigint
visit_brand_id	bigint
rcmd_track_id	string
rcmd_product_id	bigint
rcmd_category_id	bigint
rcmd_brand_id	bigint
rcmd_algorithm_id	bigint
cart_track_id	string
cart_track_time	string
cart_product_id	bigint
cart_category_id	bigint
cart_brand_id	bigint
path_type	int
path_length	int
path_list	string
session_id	string
gu_id	string
end_user_id	string
platform_id	int
tpa	int
ds	string
Time taken: 3.159 seconds
时间: 2024-10-12 23:12:11

[Hive]Hive分区表新增字段的相关文章

常规版本如果新增字段或新增状态如何正确处理

原则:如果一个版本需要新增字段或新增状态,程序必须考虑兼容历史旧数据,即程序正确运行的前提不能依赖历史的完整维护正确实施的实践: 1 如果一个版本涉及新增字段或新增状态,必须在设计阶段给出程序兼容方案及历史数据维护脚本. 2 正确发版顺序为:先执行ddl脚本(如果新增字段),再发布应用程序(该程序能够兼容历史数据),最后执行dml脚本维护历史数据. 该做法带来的好处: 1 如果脚本没有完整维护数据,兼容程序也能正常运行而不必回滚程序. 2 强制编码支持ddl先行发布. 3 如果发布顺序错乱,程序

dede新增字段调用方法

各位在使用{dede:channel }标签的时候,难免会遇到因为现在字段不能满足业务需求,需要新增的情况(具体怎么新增字段自行百度). 但是新增的字段通过DEDE的标签是不能直接使用的,现在博主介绍下怎么添加字段后如何调用: 1.找到/include/taglib/channel.lib.php文件: 2.搜索   $type==  : 3.将找到的sql语句添加新增的字段名; 例如: if($type=='top') { $sql = "SELECT id,typename,typedir,

[Hive] - Hive参数含义详解

hive中参数分为三类,第一种system环境变量信息,是系统环境变量信息:第二种是env环境变量信息,是当前用户环境变量信息:第三种是hive参数变量信息,是由hive-site.xml文件定义的以及当前hive会话定义的环境变量信息.其中第三种hive参数变量信息中又由hadoop hdfs参数(直接是hadoop的).mapreduce参数.metastore元数据存储参数.metastore连接参数以及hive运行参数构成. Hive-0.13.1-cdh5.3.6参数变量信息详解 参数

FMDB 新增字段

- (BOOL)updateOneBooktempID:(NSString *)bookid WithTable:(NSString*)tabName { NSFileManager * fileManager = [NSFileManager defaultManager]; NSString* filename = [self getDBPath]; BOOL succ = NO; if ([fileManager fileExistsAtPath:filename]) { FMDataba

Magento 新增字段的值读写丢失原因

某实体新增字段handreturn_status,欲操作之: $order_info = Mage::getModel('sales/order')->load($order_id); //setData will faile $order_info->setData('handreturn_status', 2);  // old value 0 $order_info->save(); echo  $order_info->getData('handreturn_status'

alter table新增字段操作究竟有何影响?(上篇)

很久以前就有个疑问,见过一些表设计时会留出几个reverse的字段,目的是为了以后扩展,但此时设计的字段类型.长度等都是预计的,未来是否可用,不好说,那为什么会这么做呢?可能的原因是:"我现在设定好字段,需要的时候直接用就行了,不需要新增字段的操作". 那么,问题就是,新增字段的操作究竟有什么影响?增加表字段的时候,是否会锁表?对DML.DDL有什么影响?如果搞清楚这些,才能对上面的问题给出科学的答案. 为了证明增加字段的操作究竟做了什么,有什么影响,打算使用10046事件来看看. S

ASP.NET MVC5--为数据库新增字段(涉及数据库迁移技术)

Setting up Code First Migrations for Model Changes--为模型更改做数据库迁移. 1.打开资源管理器,在App_Data文件夹下,找到movies.mdf数据库文件,如果没有看到点击显示所有文件. 2.删掉movies.mdf数据库文件,并编译项目.确保没有报错. 3.找到工具菜单栏下面的NuGet程序包管理器---程序包管理器控制台,如图所示: 4,在程序包管理器控制台中,输入:Enable-Migrations -ContextTypeName

sqlSerer修改字段类型,新增字段

修改字段类型 alter table 表名 alter column 列名 类型 not null 新增字段 alter table 表名 add 字段 类型 not null

Oracle 之 表新增字段后修改字段顺序

工作中遇到:在为一个表新增字段后,新增字段在最后,想调整新增字段的位置. 1.原始方法: --新建临时表以存储正确的顺序 create table A_2 as select (column1,colum2,……A表中的顺序) from A_1 ; --删除表A_1 drop table A_1; --新建A_1并从A_2表中赋予其正确的顺序和值 create table A_1 as select * from A_2; --删除临时表A_2 drop table A_2; 这种方法对字段较少