[ https://issues.apache.org/jira/browse/SPARK-32582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17175143#comment-17175143 ]
Lantao Jin commented on SPARK-32582: ------------------------------------ {code} files.toIterator.map(file => readSchema(file.getPath, conf, ignoreCorruptFiles)).collectFirst {code} {{collectFirst()}} will break out when its iterator found a matching value. {code} def collectFirst[B](pf: PartialFunction[A, B]): Option[B] = { for (x <- self.toIterator) { // make sure to use an iterator or `seq` if (pf isDefinedAt x) return Some(pf(x)) } None } {code} So in most cases, it just reads only one file. > Spark SQL Infer Schema Performance > ---------------------------------- > > Key: SPARK-32582 > URL: https://issues.apache.org/jira/browse/SPARK-32582 > Project: Spark > Issue Type: Improvement > Components: SQL > Affects Versions: 2.4.6, 3.0.0 > Reporter: Jarred Li > Priority: Major > > When infer schema is enabled, it tries to list all the files in the table, > however only one of the file is used to read schema informaiton. The > performance is impacted due to list all the files in the table when the > number of partitions is larger. > > See the code in > "[https://github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/orc/OrcUtils.scala#88]", > all the files in the table are input, however only one of the file's schema > is used to infer schema. > -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org