ошибка блоков данных IllegalStateException: журнал транзакций не прошел проверку целостности - PullRequest
0 голосов
/ 13 декабря 2018

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

IllegalStateException: журнал транзакций не прошел проверку целостности.Мы рекомендуем вам обратиться в службу поддержки Databricks за помощью.Чтобы отключить эту проверку, установите для параметра spark.databricks.delta.state.corruptionIsFatal значение false.Не удалось проверить: размер таблицы (в байтах) - ожидаемое: 0 вычислено: 63233 количество файлов - ожидаемое: 0 вычислено: 1

1 Ответ

0 голосов
/ 13 декабря 2018

Мы думаем, что это может быть связано с возможной последовательностью s3.Пожалуйста, подождите несколько дополнительных минут после удаления каталога Delta, прежде чем записывать в него новые данные.Кроме того, обычный MSCK REPAIR TABLE ничего не делает для Delta, поскольку Delta не использует Hive Metastore для хранения разделов.Существует FSCK REPAIR TABLE , но она предназначена для удаления файловых записей из журнала транзакций таблицы дельты Databricks, которые больше не могут быть найдены в базовой файловой системе.

Мы не можемНе рекомендуется перезаписывать таблицу Delta, как вы могли бы использовать обычную таблицу Spark.Дельта не похожа на обычную таблицу - это таблица, плюс журнал транзакций и множество версий ваших данных (если они не полностью очищены).Если вы хотите перезаписать части таблицы или даже всю таблицу, вам следует использовать функциональность Delta delete .Если вы хотите полностью изменить таблицу, рассмотрите возможность записи в совершенно новый каталог, например /table/v2/..., и отдельного удаления другой таблицы.

...