【发布时间】:2017-02-03 10:40:32
【问题描述】:
我有一个表设施标题,我想更改它并添加一些列。我希望新添加的列将默认值保持为空。我的表已经加载了 14 年的数据。由于它是 2002-2014 年的分区表,默认情况下这些新添加的列的值应该在表中为空。
create table facility_HEADER
(
A string,
B INT,
C INT
)partitioned by (year int comment 'Date Year Incurred')
STORED AS PARQUET
更改表命令
ALTER TABLE facility_HEADER add columns (MSCLMID Bigint,NPI STRING,UNITS decimal(10,2));
当我在表上添加描述时,我可以看到列在末尾附加。 当我从任何分区中选择 * 时,它会出错。
异常失败 java.io.IOException:org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.ClassCastException:org.apache.hadoop.io.IntWritable 不能 被强制转换为 org.apache.hadoop.io.LongWritable
我的表有 14 年的数据,我不希望通过将 null 放入 select 子句并提供别名来完成。
谁能帮我看看我的桌子到底发生了什么?我一次丢失了 14 年的数据。
【问题讨论】:
标签: java hive mapreduce hiveddl