diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DataSourceRDD.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DataSourceRDD.scala index 09c8756ca0189..d51a169cccfd8 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DataSourceRDD.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DataSourceRDD.scala @@ -111,12 +111,16 @@ private class PartitionIterator[T]( reader: PartitionReader[T], customMetrics: Map[String, SQLMetric]) extends Iterator[T] { private[this] var valuePrepared = false + private[this] var prevHasNext = true private var numRow = 0L override def hasNext: Boolean = { if (!valuePrepared) { - valuePrepared = reader.next() + if (prevHasNext) { + prevHasNext = reader.next() + } + valuePrepared = prevHasNext } valuePrepared }