2

现在,databricks 自动加载器需要一个目录路径,所有文件都将从中加载。但万一其他类型的日志文件也开始进入该目录 - 有没有办法让 Autoloader 在准备数据帧时排除这些文件?

df = spark.readStream.format("cloudFiles") \
  .option(<cloudFiles-option>, <option-value>) \
  .schema(<schema>) \
  .load(<input-path>)
4

2 回答 2

4

Autoloader 支持将 glob 字符串指定为<input-path>- 来自文档

<input-path>可以包含文件 glob 模式

Glob 语法支持不同的选项,例如,*任何字符等。因此您可以指定input-path为,path/*.json例如。您也可以排除文件,但与包含模式相比,构建该模式可能会稍微复杂一些,但它仍然是可能的 - 例如,*.[^l][^o][^g]应该排除具有.log扩展名的文件

于 2021-07-10T11:57:06.287 回答
0

用作pathGlobFilter选项之一并提供正则表达式来过滤文件类型或具有特定名称的文件。

例如,要从加载位置跳过文件名为 A1.csv、A2.csv .... A9.csv 的文件,其值pathGlobFilter将如下所示:

df = spark.read.load("/file/load/location,
                     format="csv", 
                     schema=schema, 
                     pathGlobFilter="A[0-9].csv")
于 2021-12-07T14:47:07.397 回答