Apache spark 在执行操作之前,sparkContext.wholeTextFiles(位置)不会为缺少的路径引发异常

Apache spark 在执行操作之前,sparkContext.wholeTextFiles(位置)不会为缺少的路径引发异常,apache-spark,pyspark,apache-spark-sql,spark-streaming,Apache Spark,Pyspark,Apache Spark Sql,Spark Streaming,我正在通过spark读取S3中以小时格式显示的数据。例如 sparkContext.wholeTextFiles(“s3://'Bucket'/'key'/'yyyy'/'MM'/'dd'/'hh'/*”) 上面的方法返回一个(key,value)对,即(Filename,Content) 问题 sparkContext.wholeTextFiles(“location”)。值返回一个RDD,如果S3中的“location”在对该RDD执行操作之前不存在,则该RDD不会引发异常 检查给定位置是否

我正在通过spark读取S3中以小时格式显示的数据。例如

sparkContext.wholeTextFiles(“s3://'Bucket'/'key'/'yyyy'/'MM'/'dd'/'hh'/*”)

上面的方法返回一个(key,value)对,即(Filename,Content)

问题

sparkContext.wholeTextFiles(“location”)。值返回一个RDD,如果S3中的“location”在对该RDD执行操作之前不存在,则该RDD不会引发异常

检查给定位置是否存在的当前代码

 val data = sparkSession.sparkContext
  .wholeTextFiles(location)
  .values
Try {
  data.isEmpty()
}
 case Success(_)=>{}
 case Failure(_)=>{}
即使位置不存在,数据的返回值:MapPartitionsRDD[2]

数据执行isEmpty()操作后返回值

org.apache.hadoop.mapreduce.lib.input.InvalidInputException:输入路径不存在:

问题

我正在使用一种黑客方法对数据RDD执行操作isEmpty()(我也可以使用任何其他操作),以在位置不存在的情况下给出失败,否则如果未完成此检查,则会失败,并在稍后由于延迟评估而使用此数据时引发上述相同的异常

我想问,这是否是检查位置是否存在以读取数据的正确方法,因为需要对RDD执行操作?