使用scala检查镶木地板文件是否存在

Check if parquet file exists using scala

发布类似问题,因为现有线程很旧。我正在使用下面的代码来检查文件是否存在于 target_path 中。尽管文件存在,但我得到的 return 值为 'false'。我是否缺少某些设置?

val config = sc.hadoopConfiguration
val fileSystem = org.apache.hadoop.fs.FileSystem.get(config)
var existCheck = fileSystem.exists(new org.apache.hadoop.fs.Path(target_path))

我也尝试了网站中给出的以下代码,但它也是 returning 'false'

new java.io.File(target_path).isFile
scala.reflect.io.File(target_path).exists

target_path 有一个 delta_log 和一个镶木地板零件文件。请帮助我获得正确的状态。 (DBR-7.3 LTS, spark-3.0.1)

你们非常亲密:)

下面我使用 listStatus 返回 pathToFolder 下所有文件的状态数组,这将是包含 parquet 文件的文件夹的路径。

然后我检查文件夹下每个文件的路径,并检查与 target_path 的匹配项。

import org.apache.hadoop.fs.Path

val sc: SparkContext = ???

val pathToFolder: String = ???
val pathToParquetFile: String = target_path

val config = sc.hadoopConfiguration
val src    = new Path(pathToFolder)
val fs     = src.getFileSystem(config)

val parquetFileExists: Boolean = fs
  .listStatus(src)
  .map(_.getPath.toString)
  .find(_ == pathToParquetFile)
  .isDefined