Github user cloud-fan commented on the issue:

    https://github.com/apache/spark/pull/21118
  
    all the places that use `GenerateUnsafeRowJoiner` assume the input row is 
unsafe row.
    
    `ShuffleExchangeExec` assumes its input is unsafe row, because its 
serializer is `UnsafeRowSerializer`.
    
    Note that we don't enforce this at the API level, i.e. `SparkPlan.execute` 
still returns `RDD[InternalRow]`. This is because we have exceptions: the 
object related operators can return safe row, and object related operators 
always appear in a group, and the last operator will output unsafe row.
    
    That said, you may not be able to see `UnsafeRow` in the generated code, 
but you will get `ClassCastException` if you don't follow this rule and output 
safe row.


---

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

Reply via email to