我有一个hive表,其中一列是地图数据类型。
map<int,struct<id :bigint,QTY:decimal(12,4),DISC_AMT:decimal(20,4),DISC_TYPE:string>>
现在我想在结构值中添加一个列,如下所示:
map<int,struct<id :bigint,QTY:decimal(12,4),DISC_AMT:decimal(20,4),DISC_TYPE:string,new_column :int>>
任何人都知道如何实现这一目标。
提前致谢。
答案 0 :(得分:1)
alter table t change column mycol mycol map<int,struct<id:bigint,QTY:decimal(12,4),DISC_AMT:decimal(20,4),DISC_TYPE:string,new_column:int>>;
请注意,默认情况下,只有新分区才会受到更改的影响
如果您希望将其应用于所有分区,请在末尾添加单词cascade
答案 1 :(得分:0)
找到解决方案:
alter table tablename change my_map_name my_map_name map<int,struct<id :bigint,QTY:decimal(12,4),DISC_AMT:decimal(20,4),DISC_TYPE:string,new_column :int>>;