通过 Spark 读取时忽略损坏的 Orc 文件
Ignoring corrupted Orc files when reading via Spark
我在 HDFS 中有多个 Orc 文件,目录结构如下:
orc/
├─ data1/
│ ├─ 00.orc
│ ├─ 11.orc
├─ data2/
│ ├─ 22.orc
│ ├─ 33.orc
我正在使用 Spark 读取这些文件:
spark.sqlContext.read.format("orc").load("/orc/data*/")
问题是其中一个文件已损坏所以我想skip/ignore那个文件。
我看到的唯一方法是获取所有 Orc 文件并在将其传递给 Spark 之前逐个验证(通过读取它们)。但是这样我将读取相同的文件两次。
有什么方法可以避免两次读取文件? Spark 是否提供任何相关信息?
这将帮助您:
spark.sql("set spark.sql.files.ignoreCorruptFiles=true")
我在 HDFS 中有多个 Orc 文件,目录结构如下:
orc/
├─ data1/
│ ├─ 00.orc
│ ├─ 11.orc
├─ data2/
│ ├─ 22.orc
│ ├─ 33.orc
我正在使用 Spark 读取这些文件:
spark.sqlContext.read.format("orc").load("/orc/data*/")
问题是其中一个文件已损坏所以我想skip/ignore那个文件。
我看到的唯一方法是获取所有 Orc 文件并在将其传递给 Spark 之前逐个验证(通过读取它们)。但是这样我将读取相同的文件两次。
有什么方法可以避免两次读取文件? Spark 是否提供任何相关信息?
这将帮助您:
spark.sql("set spark.sql.files.ignoreCorruptFiles=true")