I'm wondering why are the metrics repeated in FileSourceScanExec.metrics  since it is a ColumnarBatchScan  and so inherits the two metrics numOutputRows and scanTime from ColumnarBatchScan.metrics .
override lazy val metrics = super.metrics ++ Map(
"numFiles" -> SQLMetrics.createMetric(sparkContext, "number of files"),
"metadataTime" -> SQLMetrics.createMetric(sparkContext, "metadata time (ms)"))
I'd like to send a pull request with a fix if no one objects. Anyone?