テーブルファシリティヘッダーがあります。これを変更していくつかの列を追加したいのです。新しく追加された列がデフォルト値をnullとして保持します。私のテーブルにはすでに14年間のデータがロードされています.2002〜2014年のパーティションテーブルでは、これらの新しく追加されたカラムの値はデフォルトでNULLになるはずです。ALTER TABLE DEFAULT 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 *を入力すると、エラーが発生します。 org.apache.hadoop.hive.ql.metadata.HiveException: とjava.lang.ClassCastException:org.apache.hadoop.io.IntWritableは をキャストすることはできません例外 にjava.io.IOExceptionに失敗しました
to org.apache.hadoop.io.LongWritable
私のテーブルは14年分のデータを持っているため、select句にヌルを入れてエイリアスを付けることはできません。
私のテーブルで実際に起こったことを助けてくれる人がいますか。私は14年のデータを失ってしまいました。
私はすでにクエリで言及しています。私のデータがTBであるため、これらの列としてselectとnullを入れたくありません。他の回避策はありますか? – codaholic
これは、私があなたの寄せ木細工のファイルを変更しない限り、別のオプションのまわりでしか働かないと言った理由です... –