PySpark 读取不存在文件时的错误处理

Posted

技术标签:

【中文标题】PySpark 读取不存在文件时的错误处理【英文标题】:Error handling in PySpark reading in non existent files 【发布时间】:2015-06-25 10:23:33 【问题描述】:

我有大量目录和文件可供读取。然而,其中一些可能实际上并不存在,这不是问题——我会简单地忽略任何错误——使用 try 方法。有没有办法在 PySpark 中允许这样做。

这是返回的错误信息:

py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
: org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:

我正在构建一系列文件以查看以下内容:

scI = sc.textFile(",".join(paths))

其中路径是可能文件的路径列表。现在我可以检查文件系统,看看它们是否存在,但是有没有更优雅的方法呢?

【问题讨论】:

【参考方案1】:

以下应该有效:

for f in file_list:
   Try:
       read_file(f)
   except org.apache.hadoop.mapred.InvalidInputException:
       deal_with_absent_file(f)

【讨论】:

我可以用标准的 os.path.isfile(fname) 来做到这一点,有没有办法在 textFile 调用中处理这个问题?

以上是关于PySpark 读取不存在文件时的错误处理的主要内容,如果未能解决你的问题,请参考以下文章

posix_spawn() :使用 posix_spawn() 时的错误处理问题

pyspark 中不存在忽略路径

Node js ENOENT 文件错误处理

Spark Python提交错误:文件不存在:pyspark.zip

错误处理

在 Pyspark 中读取 CSV 文件引发错误 FileNotFound 错误