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

时间:2021-06-18 04:16:09

标签: scala apache-spark orc

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

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

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

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

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

我看到的唯一方法是获取所有 Orc 文件并在将其传递给 Spark 之前一一验证(通过读取它们)。但是这样我将读取相同的文件两次。

有什么办法可以避免读取文件两次? Spark 是否提供相关信息?

1 个答案:

答案 0 :(得分:1)

这将帮助您:

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