【发布时间】:2018-11-11 12:23:52
【问题描述】:
加载空的兽人文件夹时。无论如何要绕过这个。
val df = spark.read.format("orc").load(orcFolderPath)
org.apache.spark.sql.AnalysisException: Unable to infer schema for ORC. It must be specified manually.;
at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$7.apply(DataSource.scala:185)
at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$7.apply(DataSource.scala:185)
at scala.Option.getOrElse(Option.scala:121)
at org.apache.spark.sql.execution.datasources.DataSource.getOrInferFileFormatSchema(DataSource.scala:184)
at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:373)
at org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:223)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:211)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:178)
... 49 elided
得到这个错误可能是兽人阅读器试图推断架构,但我想绕过这个特殊情况,因为在存储库空白文件夹中以某种方式出现但必须检查。
try {
spark.read.format("orc").load(path)
} catch {
case ex: org.apache.spark.sql.AnalysisException => {
null
}
}
尝试通过这种方式捕获异常。任何其他方式都会有所帮助
【问题讨论】:
-
将此代码放在单独的函数中。如果函数捕获此异常,请更改类级别的变量值或标志。
-
@Nikhil...我不想使用 try catch。但是如果有空文件夹,总会有异常......所以想要另一种方法......
标签: java scala apache-spark apache-spark-sql