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..67e77a97865df 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,14 @@ private class PartitionIterator[T]( reader: PartitionReader[T], customMetrics: Map[String, SQLMetric]) extends Iterator[T] { private[this] var valuePrepared = false + private[this] var hasMoreInput = true private var numRow = 0L override def hasNext: Boolean = { - if (!valuePrepared) { - valuePrepared = reader.next() + if (!valuePrepared && hasMoreInput) { + hasMoreInput = reader.next() + valuePrepared = hasMoreInput } valuePrepared }