Github user cloud-fan commented on a diff in the pull request: https://github.com/apache/spark/pull/22745#discussion_r226981527 --- Diff: sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala --- @@ -278,24 +278,20 @@ object JavaTypeInference { case _ if mapType.isAssignableFrom(typeToken) => val (keyType, valueType) = mapKeyValueType(typeToken) - val keyDataType = inferDataType(keyType)._1 - val valueDataType = inferDataType(valueType)._1 val keyData = Invoke( - MapObjects( + UnresolvedMapObjects( p => deserializerFor(keyType, Some(p)), - Invoke(getPath, "keyArray", ArrayType(keyDataType)), - keyDataType), + UnresolvedGetArrayFromMap(getPath, GetArrayFromMap.Key())), --- End diff -- Seems we don't need to make it unresolved ``` case class GetArrayFromMap(map: Expression, getKey: Boolean) extends Expression = { override def inputTypes = Seq(MapType) override def dataType = { val MapType(kt, vt) = map.dataType.asInstanceOf[MapType] if (getKey) kv else vt } override def eval... override def doCodegen... } ```
--- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org