sql - 改变 hive 中的现有 map

标签 sql hadoop hive

我有一个配置单元表,其中一列为 map 数据类型。

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>>

任何人都知道如何实现这一目标。

提前致谢。

最佳答案

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-ChangeColumnName/Type/Position/Comment

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

关于sql - 改变 hive 中的现有 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41171758/

相关文章:

java - 在 hadoop 上用 java 运行基本的 mapreduce 作业

sql - 加载到 Hive 表中仅将整个数据导入第一列

hadoop - Hive 无法执行 SELECT * 以外的查询

MYSQL LIKE IN/匹配子字符串

SQL输出插入的新数据的id或如果没有插入重复则输出id

php - 从多个表中选择列的总和并按 id 分组

php - MySQL自增不重复

spring - Hadoop Mapper 中的依赖注入(inject)

hadoop - CDH 4.2.0和Ganglia兼容性

SQL 移动平均线