使用scala检查parquet文件是否存在



张贴类似的问题,因为现有的线程是非常旧的。我使用下面的代码来检查文件是否存在于target_path。虽然文件存在,但我得到的返回值为"假"。我是不是漏掉了什么设置?

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))

我也尝试了下面给出的代码,但它也返回'false'

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

target_path有一个delta_log和一个parquet部件文件。请帮我得到正确的状态。(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

最新更新