テーブルの施設ヘッダーがあり、それを変更していくつかの列を追加したい.新しく追加された列にデフォルト値をnullとして保持させたい. 私のテーブルにはすでに 14 年間のデータがロードされています。デフォルトでは 2002 年から 2014 年のパーティション分割されたテーブルであるため、これらの新しく追加された列の値はテーブルで null になるはずです。
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));
テーブルに説明を付けると、最後に列が追加されていることがわかります。任意のパーティションから select * を配置すると、エラーが発生します。
例外 java.io.IOException:org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.ClassCastException: org.apache.hadoop.io.IntWritable を org.apache.hadoop.io にキャストできませんで失敗しました。書き込み可能
私のテーブルには 14 年間のデータがあり、select 句に null を入れてエイリアスを与えることでデータを処理したくありません。
私のテーブルで実際に何が起こったのか、誰か助けてくれませんか.私は14年間のデータを一度に失いました.