Pyspark 如何修复ADLS Gen 2中的增量位置文件

Pyspark 如何修复ADLS Gen 2中的增量位置文件,pyspark,apache-spark-sql,databricks,azure-databricks,azure-data-lake-gen2,Pyspark,Apache Spark Sql,Databricks,Azure Databricks,Azure Data Lake Gen2,我正在使用ADF中的数据流在ADLS Gen2中截断和加载增量文件。管道成功运行后,如果我试图在Azure Data Bricks中读取文件,则会出现以下错误 找不到事务日志中引用的文件。当从文件系统手动删除数据而不是使用表DELETE语句时,会发生这种情况。有关更多信息,请参见 我发现消除这种情况的一种方法是在ADB中重新启动集群。但是,有没有更好的方法来克服这个问题?有时hive megastore不会选择表分区/列中的更改,在尝试执行某些查询之前,刷新表始终是一个很好的做法。如果从当前作业

我正在使用ADF中的数据流在ADLS Gen2中截断和加载增量文件。管道成功运行后,如果我试图在Azure Data Bricks中读取文件,则会出现以下错误

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


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

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

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

%sql
REFRESH [TABLE] table_identifier

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

  • 在集群标签(
    spark.databricks.io.cache.enabled false
    )上或在主笔记本的第一个命令中使用
    spark.conf.set(“spark.databricks.io.cache.enabled”,“false”)
  • 在删除操作之后添加“
    sqlContext.clearCache()
  • 删除操作后添加“
    FSCK修复表[db\u name.]TABLE\u name

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

dbutils.fs.rm(table_path, True)