我最终手动删除了一些 delta Lake 条目(托管在 S3 上)。现在我的 Spark 作业失败了,因为增量事务日志指向文件系统中不存在的文件。我遇到了这个https://docs.databricks.com/spark/latest/spark-sql/language-manual/delta-fsck.html 但我不确定我应该如何运行这个实用程序。
问问题
382 次
1 回答
2
您可以按照随附的文档轻松完成此操作。
如果您的 S3 顶部有 hive 表,我已按如下方式执行此操作:
%sql
FSCK REPAIR TABLE schema.testtable DRY RUN
UsingDRY RUN
将列出需要删除的文件。您可以先运行上述命令,并验证实际需要删除的文件。
一旦你确认你可以运行上面的实际命令DRY RUN
,它应该可以满足你的需要。
%sql
FSCK REPAIR TABLE schema.testtable
现在,如果您还没有创建配置单元表并且有一个路径(增量表),那么您可以执行以下操作:
%sql
FSCK REPAIR TABLE delta.`dbfs:/mnt/S3bucket/tables/testtable` DRY RUN
我正在从数据块执行此操作,并将我的 S3 存储桶路径安装到数据块。您需要确保在delta之后有那个`符号。在实际路径之前,否则它将不起作用。
这里也为了执行实际的修复操作,您可以DRY RUN
从上面的命令中删除它,它应该做您所希望的事情。
于 2021-04-21T06:44:53.047 回答