如何解决如何修复 AWS S3 上损坏的 delta 湖表
我最终手动删除了一些 delta Lake 条目(托管在 S3 上)。 现在我的 spark 作业失败了,因为增量事务日志指向文件系统中不存在的文件。 我遇到了这个https://docs.databricks.com/spark/latest/spark-sql/language-manual/delta-fsck.html 但我不确定在我的情况下应该如何运行此实用程序。
解决方法
您可以按照附加的文档轻松执行此操作。
如果您的 S3 顶部有蜂巢表,我已按如下方式执行此操作:
%sql
FSCK REPAIR TABLE schema.testtable DRY RUN
使用 DRY RUN
将列出需要删除的文件。可以先运行上面的命令,验证一下实际需要删除的文件。
一旦您确认您可以在没有 DRY RUN
的情况下运行实际的上述命令,它应该可以满足您的需求。
%sql
FSCK REPAIR TABLE schema.testtable
现在,如果您还没有创建 hive 表并且有一个路径(增量表),您可以在其中放置文件,如下所示:
%sql
FSCK REPAIR TABLE delta.`dbfs:/mnt/S3bucket/tables/testtable` DRY RUN
我是从 databricks 执行此操作,并将我的 S3 存储桶路径安装到 databricks。 您需要确保在 delta. 之后和实际路径之前有 ` 符号,否则它将无法工作。
这里也是为了执行实际的修复操作,您可以从上面的命令中删除 DRY RUN
,它应该可以完成您所需要的操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。