我有一个表设施标题,我想更改它并添加几列。我希望新添加的列将默认值保持为空。我的表已经加载了 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。可长写
我的表有 14 年的数据,我不希望通过将 null 放入 select 子句并提供别名来完成。
任何人都可以帮助我我的表实际发生了什么。我一次丢失了 14 年的数据。