从 Databricks 中的挂载读取数据(使用 Autoloader)

Read data from mount in Databricks (using Autoloader)

我正在使用 azure blob 存储来存储数据并使用 mount 将此数据提供给 Autoloader。我一直在寻找一种允许自动加载器从任何装载加载新文件的方法。假设我的装载中有这些文件夹:

mnt/

├─ blob_container_1

├─ blob_container_2

当我使用 .load('/mnt/') 时,没有检测到新文件。但是,当我单独考虑文件夹时,它可以正常工作,例如 .load('/mnt/blob_container_1')

我想使用自动加载器从两个安装路径加载文件(运行 连续)。

您可以使用提供前缀模式的路径,例如:

df = spark.readStream.format("cloudFiles") \
  .option("cloudFiles.format", <format>) \
  .schema(schema) \
  .load("<base_path>/*/files")

例如,如果您只想解析包含具有不同后缀的文件的目录中的 png 文件,您可以这样做:

df = spark.readStream.format("cloudFiles") \
  .option("cloudFiles.format", "binaryFile") \
  .option("pathGlobfilter", "*.png") \
  .load(<base_path>)

参考 – https://docs.databricks.com/spark/latest/structured-streaming/auto-loader.html#filtering-directories-or-files-using-glob-patterns