Github user rdblue commented on a diff in the pull request:

    https://github.com/apache/spark/pull/19394#discussion_r143317518
  
    --- Diff: 
sql/core/src/main/scala/org/apache/spark/sql/execution/SparkPlan.scala ---
    @@ -280,13 +280,20 @@ abstract class SparkPlan extends QueryPlan[SparkPlan] 
with Logging with Serializ
         results.toArray
       }
     
    +  private[spark] def executeCollectIterator(): (Long, 
Iterator[InternalRow]) = {
    +    val countsAndBytes = getByteArrayRdd().collect()
    +    val total = countsAndBytes.map(_._1).sum
    +    val rows = countsAndBytes.iterator.map(_._2).flatMap(decodeUnsafeRows)
    +    (total, rows)
    +  }
    +
       /**
        * Runs this query returning the result as an iterator of InternalRow.
        *
        * @note Triggers multiple jobs (one for each partition).
        */
       def executeToIterator(): Iterator[InternalRow] = {
    -    getByteArrayRdd().toLocalIterator.flatMap(decodeUnsafeRows)
    +    getByteArrayRdd().toLocalIterator.map(_._2).flatMap(decodeUnsafeRows)
    --- End diff --
    
    Good point. I guess from the tests that this will create a new RDD, which 
isn't what we want.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to