使用通配符火花读取blob存储

时间:2019-08-24 10:56:32

标签: apache-spark azure-storage-blobs databricks azure-databricks

我想使用数据块将Azure Blob存储文件读入spark。但是我不想为每个嵌套级别设置一个特定的文件或*

标准:**/*/不起作用。 这些工作正常:

val df = spark.read.format("avro").load("dbfs:/mnt/foo/my_file/0/2019/08/24/07/54/10.avro")
val df = spark.read.format("avro").load("dbfs:/mnt/foo/my_file/*/*/*/*/*/*")

失败:

java.io.FileNotFoundException: No Avro files found. If files don't have .avro extension, set ignoreExtension to true

val df = spark.read.format("avro").load("dbfs:/foo/my_file/test/**/*")

1 个答案:

答案 0 :(得分:1)

默认情况下,Spark会递归向下读取-因此您只需要指向根文件夹:

val df = spark.read.format("avro").load("dbfs:/foo/my_file/test/")

路径值实际上是一个正则表达式。

**什么都不做

*将起作用-尽管通常以{*}的形式完成,这被称为“ globbing”。值得一读:How to use regex to include/exclude some input files in sc.textFile?