通过Spark读取时忽略损坏的兽人文件



我在HDFS中有多个Orc文件,目录结构如下:

orc/
├─ data1/
│  ├─ 00.orc
│  ├─ 11.orc
├─ data2/
│  ├─ 22.orc
│  ├─ 33.orc

我正在使用Spark:读取这些文件

spark.sqlContext.read.format("orc").load("/orc/data*/")

问题是其中一个文件已损坏,所以我想跳过/忽略该文件。

我看到的唯一方法是获取所有兽人文件,并在将其传递给Spark之前逐一验证(通过读取它们(。但这样的话,我会把同样的文件读两遍。

有什么办法可以避免我把文件读两遍吗?Spark对此有什么提供吗?

这将帮助您:

spark.sql("set spark.sql.files.ignoreCorruptFiles=true")

最新更新