Блоки данных - Как изменить раздел существующей таблицы Delta? - PullRequest
0 голосов
/ 04 марта 2019

У меня есть таблица в дельте Databricks, которая разделена на transaction_date.Я хочу изменить столбец раздела на view_date.Я попытался удалить таблицу, а затем создать ее с новым столбцом раздела, используя PARTITIONED BY (view_date).

Однако моя попытка не удалась, поскольку фактические файлы находятся в S3, и даже если я удаляю таблицу кустов, разделы остаются прежними.Есть ли способ изменить раздел существующей таблицы Delta?Или единственное решение - сбросить фактические данные и загрузить их вновь указанным столбцом раздела?

1 Ответ

0 голосов
/ 04 мая 2019

На самом деле нет необходимости удалять таблицы или удалять файлы.Все, что вам нужно сделать, это прочитать текущую таблицу, перезаписать содержимое И схему и изменить столбец раздела:

val input = spark.read.table("mytable")

input.write.format("delta")
  .mode("overwrite")
  .option("overwriteSchema", "true")
  .partitionBy("colB") // different column
  .saveAsTable("mytable")

Просто предупреждение о том, что в настоящее время это не поддерживается путешествие во времени , если вы хотите прочитать предыдущие версии таблицы с другим разделением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...