张贴类似的问题,因为现有的线程是非常旧的。我使用下面的代码来检查文件是否存在于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