Hive 在配置单元中更改列数据类型
我们需要将表列数据类型从string改为date。当我试图做的时候,我得到了下面的错误。你能帮忙吗 配置单元>描述销售情况 嗯 客户id字符串产品编号字符串Hive 在配置单元中更改列数据类型,hive,bigdata,Hive,Bigdata,我们需要将表列数据类型从string改为date。当我试图做的时候,我得到了下面的错误。你能帮忙吗 配置单元>描述销售情况 嗯 客户id字符串产品编号字符串 qty int销售日期字符串 销售标识字符串 所用时间:0.151秒, 已获取:5行 配置单元>更改表销售\u分期更改销售\u日期销售\u日期 失败:执行错误,从返回代码1 org.apache.hadoop.hive.ql.exec.ddlstask。无法更改表。这个 以下列的类型与中的现有列不兼容 各自的位置:销售日期 蜂巢> 您不能为
qty int销售日期字符串 销售标识字符串 所用时间:0.151秒, 已获取:5行 配置单元>更改表销售\u分期更改销售\u日期销售\u日期 失败:执行错误,从返回代码1 org.apache.hadoop.hive.ql.exec.ddlstask。无法更改表。这个 以下列的类型与中的现有列不兼容 各自的位置:销售日期 蜂巢>
您不能为要更改其数据类型的列指定相同的名称。像这样使用
ALTER TABLE sales_staging CHANGE sale_date sale_date_new DATE;
请参阅此您不能将现有的字符串类型数据更改为日期类型。但我们可以通过两种方式解决这个问题
订单\日期字符串
订单\客户\ id int
订单状态字符串 创建了另一个表ordersnew 描述新秩序 id int
日期
cid int
奥斯塔斯弦 现在将orders数据导出到ordersnew表 插入订单新选择订单id、cast(从unix时间(子字符串(订单日期,1,19),‘yyyy-MM-dd HH:MM:ss’)作为时间戳)作为标准日期、订单客户id、订单状态 子字符串(订单日期,1,19),'yyyy-MM-dd HH:MM:ss'这是您必须根据数据检查和更改查询的位置 请检查日期转换,执行以下步骤: 步骤1)检查“销售日期”字段中的所有日期是否有效。如果是,则转至步骤2 步骤2)检查日期格式,日期数据类型格式应为“yyyy-MM-dd”。如果日期格式为“yyyy-MM-dd HH:MM:ss”,则应尝试以下语法:
更改表销售_分期更改销售_日期销售_日期时间戳 这个信息似乎很清楚。不能将整数更改为日期。也许您应该创建表的新版本并将数据复制到其中。sale_date string,它是一种字符串数据类型。我想换到现在。请检查和帮助。