You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Databricks Autoloader意外读取子文件夹问题求助

Azure Databricks Autoloader 读取子文件夹问题排查与解决

问题原因

当启用cloudFiles.useNotifications=true时,Autoloader会切换为依赖Azure存储的事件通知(如Event Grid)来发现文件,此时recursiveFileLookup=false的配置会被忽略。原因在于存储通知机制默认监听指定根路径下的所有层级子目录,只要子目录内生成文件,就会向Autoloader发送通知触发摄入流程,递归查找的配置无法覆盖这种基于事件的监听逻辑。

可行解决方法

方法1:优化pathGlobFilter配置

细化匹配规则,确保仅匹配accounts根目录下的CSV文件:

spark.readStream.format("cloudFiles")
  .option("cloudFiles.format", "csv")
  .option("cloudFiles.useNotifications", "true")
  .option("pathGlobFilter", "*.csv")  # 仅匹配当前加载路径下的CSV文件,不包含子目录
  .load("/mnt/your-container/accounts")

方法2:使用cloudFiles.excludePaths排除指定目录

通过排除路径参数直接过滤snapshot子文件夹,比pathGlobFilter更直观:

spark.readStream.format("cloudFiles")
  .option("cloudFiles.format", "csv")
  .option("cloudFiles.useNotifications", "true")
  .option("cloudFiles.excludePaths", '["accounts/snapshot/*"]')
  .load("/mnt/your-container/accounts")

注意:路径需相对于加载根路径(../accounts)编写,或使用完整ADLS路径。

方法3:调整存储事件通知范围

若拥有存储账户管理权限,可修改Event Grid订阅的事件过滤条件,将通知范围限定为accounts根目录(不包含子目录)。操作时在Event Grid订阅的「过滤」设置中添加路径前缀过滤,仅触发根目录下的文件事件。此方法需确保不影响Dynamics365导出文件的正常流程。

内容的提问来源于stack exchange,提问作者user16292606

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:36:23