Databricksの列の名前をどのように変更しますか?
以下は機能しません。
ALTER TABLE mySchema.myTable change COLUMN old_name new_name int
それはエラーを返します:
ALTER TABLE CHANGE COLUMNは、タイプ 'IntegerType>(nullable = true)'の列 'old_name'をタイプ 'IntegerType(nullable = true)'の 'new_name'に変更することはサポートされていません。
違いがある場合、このテーブルはDelta Lakeを使用しており、この「old_name」列によってパーティション化またはzオーダーされていません。
Databricksで列のデータ型の名前を変更または変更することはできません。新しい列を追加したり、列を並べ替えたり、列のコメントを追加したりするだけです。これを行うには、overwriteSchema
オプションを使用してテーブルを書き換える必要があります。
以下の例を このドキュメント から取得します。
spark.read.table(...)
.withColumnRenamed("date", "date_created")
.write
.mode("overwrite")
.option("overwriteSchema", "true")
.table(...)