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: [email protected]
For additional commands, e-mail: [email protected]