Github user gatorsmile commented on a diff in the pull request:
https://github.com/apache/spark/pull/19394#discussion_r143315153
--- 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 --
The same here.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]