-
まず、odpsは現在、既存のテーブルの列フィールドのデータ型の変更をサポートしていません
-
第二に、常に方法があり、以下は私の方法です
1.元のテーブルと一致するODPSに新しいテーブルtb_tmpを作成します。新しいテーブルは変更されたフィールドタイプを使用することに注意してください
パス
2. ODPSで動的パーティションステートメントを呼び出して、元のパーティションテーブルtbの値を新しいテーブルtb_tmpに書き込みます。
INSERT OVERWRITE TABLE tb_tmp PARTITION(partcol1 ...) select col1、col2、partcol1 ... FROM tb;
3.元のテーブルと新しいテーブルのデータ量がパーティションと一致しているかどうかを確認します
パス
4.元のテーブルtbを削除します
1 ドロップ テーブル tb
5.新しいテーブルの名前をtb_tmpからtbに変更します。
1 ALTER TABLE tb_tmp RENAME to tb
参考資料:https : //help.aliyun.com/document_detail/73779.html?spm=a2c4g.11186623.6.690.645b65d5T9daDG