Repository: spark
Updated Branches:
  refs/heads/master 46d2d2c74 -> 72a23a6c4


[SPARK-25772][SQL][FOLLOWUP] remove GetArrayFromMap

## What changes were proposed in this pull request?

In https://github.com/apache/spark/pull/22745 we introduced the 
`GetArrayFromMap` expression. Later on I realized this is duplicated as we 
already have `MapKeys` and `MapValues`.

This PR removes `GetArrayFromMap`

## How was this patch tested?

existing tests

Closes #22825 from cloud-fan/minor.

Authored-by: Wenchen Fan <wenc...@databricks.com>
Signed-off-by: Wenchen Fan <wenc...@databricks.com>


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/72a23a6c
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/72a23a6c
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/72a23a6c

Branch: refs/heads/master
Commit: 72a23a6c43fe1b5a6583ea6b35b4fbb08474abbe
Parents: 46d2d2c
Author: Wenchen Fan <wenc...@databricks.com>
Authored: Fri Oct 26 10:19:35 2018 +0800
Committer: Wenchen Fan <wenc...@databricks.com>
Committed: Fri Oct 26 10:19:35 2018 +0800

----------------------------------------------------------------------
 .../spark/sql/catalyst/JavaTypeInference.scala  |  6 +-
 .../catalyst/expressions/objects/objects.scala  | 75 --------------------
 2 files changed, 3 insertions(+), 78 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/72a23a6c/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala
----------------------------------------------------------------------
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala
index f32e080..8ef8b2b 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/JavaTypeInference.scala
@@ -26,7 +26,7 @@ import scala.language.existentials
 
 import com.google.common.reflect.TypeToken
 
-import org.apache.spark.sql.catalyst.analysis.{GetColumnByOrdinal, 
UnresolvedAttribute, UnresolvedExtractValue}
+import org.apache.spark.sql.catalyst.analysis.{GetColumnByOrdinal, 
UnresolvedExtractValue}
 import org.apache.spark.sql.catalyst.expressions._
 import org.apache.spark.sql.catalyst.expressions.objects._
 import org.apache.spark.sql.catalyst.util.{ArrayBasedMapData, DateTimeUtils, 
GenericArrayData}
@@ -280,7 +280,7 @@ object JavaTypeInference {
           Invoke(
             UnresolvedMapObjects(
               p => deserializerFor(keyType, p),
-              GetKeyArrayFromMap(path)),
+              MapKeys(path)),
             "array",
             ObjectType(classOf[Array[Any]]))
 
@@ -288,7 +288,7 @@ object JavaTypeInference {
           Invoke(
             UnresolvedMapObjects(
               p => deserializerFor(valueType, p),
-              GetValueArrayFromMap(path)),
+              MapValues(path)),
             "array",
             ObjectType(classOf[Array[Any]]))
 

http://git-wip-us.apache.org/repos/asf/spark/blob/72a23a6c/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/objects/objects.scala
----------------------------------------------------------------------
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/objects/objects.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/objects/objects.scala
index 5bfa485..b6f9b47 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/objects/objects.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/objects/objects.scala
@@ -1788,78 +1788,3 @@ case class ValidateExternalType(child: Expression, 
expected: DataType)
     ev.copy(code = code, isNull = input.isNull)
   }
 }
-
-object GetKeyArrayFromMap {
-
-  /**
-   * Construct an instance of GetArrayFromMap case class
-   * extracting a key array from a Map expression.
-   *
-   * @param child a Map expression to extract a key array from
-   */
-  def apply(child: Expression): Expression = {
-    GetArrayFromMap(
-      child,
-      "keyArray",
-      _.keyArray(),
-      { case MapType(kt, _, _) => kt })
-  }
-}
-
-object GetValueArrayFromMap {
-
-  /**
-   * Construct an instance of GetArrayFromMap case class
-   * extracting a value array from a Map expression.
-   *
-   * @param child a Map expression to extract a value array from
-   */
-  def apply(child: Expression): Expression = {
-    GetArrayFromMap(
-      child,
-      "valueArray",
-      _.valueArray(),
-      { case MapType(_, vt, _) => vt })
-  }
-}
-
-/**
- * Extracts a key/value array from a Map expression.
- *
- * @param child a Map expression to extract an array from
- * @param functionName name of the function that is invoked to extract an array
- * @param arrayGetter function extracting `ArrayData` from `MapData`
- * @param elementTypeGetter function extracting array element `DataType` from 
`MapType`
- */
-case class GetArrayFromMap private(
-    child: Expression,
-    functionName: String,
-    arrayGetter: MapData => ArrayData,
-    elementTypeGetter: MapType => DataType) extends UnaryExpression with 
NonSQLExpression {
-
-  private lazy val encodedFunctionName: String = 
TermName(functionName).encodedName.toString
-
-  lazy val dataType: DataType = {
-    val mt: MapType = child.dataType.asInstanceOf[MapType]
-    ArrayType(elementTypeGetter(mt))
-  }
-
-  override def checkInputDataTypes(): TypeCheckResult = {
-    if (child.dataType.isInstanceOf[MapType]) {
-      TypeCheckResult.TypeCheckSuccess
-    } else {
-      TypeCheckResult.TypeCheckFailure(
-        s"Can't extract array from $child: need map type but got 
${child.dataType.catalogString}")
-    }
-  }
-
-  override def nullSafeEval(input: Any): Any = {
-    arrayGetter(input.asInstanceOf[MapData])
-  }
-
-  override def doGenCode(ctx: CodegenContext, ev: ExprCode): ExprCode = {
-    defineCodeGen(ctx, ev, childValue => s"$childValue.$encodedFunctionName()")
-  }
-
-  override def toString: String = s"$child.$functionName"
-}


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

Reply via email to