我们如何在ADLS Gen 2中修复增量位置文件



我正在使用ADF中的数据流对ADLS Gen2中的delta文件进行截断和加载。在管道成功运行后,如果我试图读取Azure数据块中的文件,我会收到以下错误。

找不到事务日志中引用的文件。当从文件系统中手动删除数据而不是使用表DELETE语句时,就会发生这种情况。有关更多信息,

我发现消除这种情况的一种方法是在ADB中重新启动集群。但是,有没有更好的方法来克服这个问题?

有时,表分区/列中的更改不会被hive megastore选中,在尝试执行某些查询之前,刷新表始终是一种很好的做法。如果在当前作业仍在运行时,从当前作业获取的元数据从任何其他作业更改,则可能发生此异常。

刷新表:使缓存的条目无效,其中包括给定表或视图的数据和元数据。当缓存的表或与其关联的查询再次执行时,将以惰性方式填充无效的缓存。

%sql
REFRESH [TABLE] table_identifier

以下是解决此问题的一些建议:

  • 使用spark.conf.set("spark.databricks.io.cache.enabled", "false")在集群标签(spark.databricks.io.cache.enabled false(或主笔记本的第一个命令中添加配置
  • 将";CCD_ 4";在删除操作之后
  • 将";CCD_ 5";删除操作之后

您可以将其从文件系统中删除

dbutils.fs.rm(table_path, True)

最新更新