Вы можете использовать org.apache.hadoop.fs.FileSystem
def isFileExists(path: String, pattern: String)(implicit spark: SparkSession): Boolean = {
val fixedPath = path.stripSuffix("/") + "/"
val conf = spark.sparkContext.hadoopConfiguration
val fs = FileSystem.get(new URI(path), conf)
val reg = new Regex(pattern)
try {
val files = fs.listFiles(new Path(fixedPath), true)
var flag = false
// hack because listFiles returns RemoteIterator which not an inheritor of java.util.Iterator
while (files.hasNext) {
reg.findFirstMatchIn(files.next().toString) match {
case Some(_) => flag = true
case None =>
}
}
flag
} catch {
// if dir doesn't exist
case _: java.io.FileNotFoundException => false
case e: Throwable => throw e
} finally {
fs.close()
}
}
, он работает с s3, hdfs и локальной файловой системой, и вы можете написать модульные тесты