diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/v2/WriteToDataSourceV2Exec.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/v2/WriteToDataSourceV2Exec.scala index 6bb1eb6f4b6d..81fea565d267 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/v2/WriteToDataSourceV2Exec.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/v2/WriteToDataSourceV2Exec.scala @@ -350,9 +350,15 @@ case class ReplaceDataExec( // One of the metrics couldn't be found, also mark numDeletedRows as not found. -1L } + + // SQLMetric.set call is a no-op if value is -1. Override numDeletedRows value in summary. metrics("numDeletedRows").set(numDeletedRows) + super.getWriteSummary(query).map { + case d: DeleteSummaryImpl => d.copy(numDeletedRows = numDeletedRows) + } + } else { + super.getWriteSummary(query) } - super.getWriteSummary(query) } }