Github user cloud-fan commented on a diff in the pull request:

    https://github.com/apache/spark/pull/19603#discussion_r147580056
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/objects/objects.scala
 ---
    @@ -591,18 +591,40 @@ case class MapObjects private(
           case _ => inputData.dataType
         }
     
    -    val (getLength, getLoopVar) = inputDataType match {
    +    val (getLength, prepareLoop, getLoopVar) = inputDataType match {
           case ObjectType(cls) if classOf[Seq[_]].isAssignableFrom(cls) =>
    -        s"${genInputData.value}.size()" -> 
s"${genInputData.value}.apply($loopIndex)"
    +        val it = ctx.freshName("it")
    --- End diff --
    
    That's not a big deal, we are traversing the collection from start to end, 
so either Iterator or accessing by index won't have much difference, may not 
worth to create 2 branches here.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to