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

    https://github.com/apache/spark/pull/20980#discussion_r183373874
  
    --- Diff: 
sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ObjectExpressionsSuite.scala
 ---
    @@ -501,6 +502,111 @@ class ObjectExpressionsSuite extends SparkFunSuite 
with ExpressionEvalHelper {
           InternalRow.fromSeq(Seq(Row(1))),
           "java.lang.Integer is not a valid external type for schema of 
double")
       }
    +
    +  private def javaMapSerializerFor(
    +      keyClazz: Class[_],
    +      valueClazz: Class[_])(inputObject: Expression): Expression = {
    +
    +    def kvSerializerFor(inputObject: Expression, clazz: Class[_]): 
Expression = clazz match {
    +      case c if c == classOf[java.lang.Integer] =>
    +        Invoke(inputObject, "intValue", IntegerType)
    +      case c if c == classOf[java.lang.String] =>
    +        StaticInvoke(
    +          classOf[UTF8String],
    +          StringType,
    +          "fromString",
    +          inputObject :: Nil,
    +          returnNullable = false)
    +    }
    +
    +    ExternalMapToCatalyst(
    +      inputObject,
    +      ObjectType(keyClazz),
    +      kvSerializerFor(_, keyClazz),
    +      keyNullable = true,
    +      ObjectType(valueClazz),
    +      kvSerializerFor(_, valueClazz),
    +      valueNullable = true
    +    )
    +  }
    +
    +  private def scalaMapSerializerFor[T: TypeTag, U: TypeTag](inputObject: 
Expression): Expression = {
    +    import org.apache.spark.sql.catalyst.ScalaReflection._
    +
    +    val curId = new java.util.concurrent.atomic.AtomicInteger()
    --- End diff --
    
    What is this?


---

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

Reply via email to