aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorYin Huai <huai@cse.ohio-state.edu>2014-07-31 21:02:11 -0700
committerMichael Armbrust <michael@databricks.com>2014-07-31 21:02:11 -0700
commit9632719c9ef16ad95af4f3b85ae72d54b02b0f90 (patch)
tree1ff4050edefec3d87f10623d42bbc3c3db5c82b1 /sql
parentb124de584a45b7ebde9fbe10128db429c56aeaee (diff)
downloadspark-9632719c9ef16ad95af4f3b85ae72d54b02b0f90.tar.gz
spark-9632719c9ef16ad95af4f3b85ae72d54b02b0f90.tar.bz2
spark-9632719c9ef16ad95af4f3b85ae72d54b02b0f90.zip
[SPARK-2779] [SQL] asInstanceOf[Map[...]] should use scala.collection.Map instead of scala.collection.immutable.Map
Since we let users create Rows. It makes sense to accept mutable Maps as values of MapType columns. JIRA: https://issues.apache.org/jira/browse/SPARK-2779 Author: Yin Huai <huai@cse.ohio-state.edu> Closes #1705 from yhuai/SPARK-2779 and squashes the following commits: 00d72fd [Yin Huai] Use scala.collection.Map.
Diffstat (limited to 'sql')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypes.scala2
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/generators.scala2
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/json/JsonRDD.scala1
-rw-r--r--sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala19
4 files changed, 24 insertions, 0 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypes.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypes.scala
index 72add5e20e..c1154eb81c 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypes.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/complexTypes.scala
@@ -17,6 +17,8 @@
package org.apache.spark.sql.catalyst.expressions
+import scala.collection.Map
+
import org.apache.spark.sql.catalyst.types._
/**
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/generators.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/generators.scala
index 422839dab7..3d41acb79e 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/generators.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/generators.scala
@@ -17,6 +17,8 @@
package org.apache.spark.sql.catalyst.expressions
+import scala.collection.Map
+
import org.apache.spark.sql.catalyst.trees
import org.apache.spark.sql.catalyst.types._
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/json/JsonRDD.scala b/sql/core/src/main/scala/org/apache/spark/sql/json/JsonRDD.scala
index bd29ee421b..70db1ebd3a 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/json/JsonRDD.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/json/JsonRDD.scala
@@ -17,6 +17,7 @@
package org.apache.spark.sql.json
+import scala.collection.Map
import scala.collection.convert.Wrappers.{JMapWrapper, JListWrapper}
import scala.math.BigDecimal
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
index bebb490645..5c571d35d1 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
@@ -505,5 +505,24 @@ class SQLQuerySuite extends QueryTest {
(2, null) ::
(3, null) ::
(4, 2147483644) :: Nil)
+
+ // The value of a MapType column can be a mutable map.
+ val rowRDD3 = unparsedStrings.map { r =>
+ val values = r.split(",").map(_.trim)
+ val v4 = try values(3).toInt catch {
+ case _: NumberFormatException => null
+ }
+ Row(Row(values(0).toInt, values(2).toBoolean), scala.collection.mutable.Map(values(1) -> v4))
+ }
+
+ val schemaRDD3 = applySchema(rowRDD3, schema2)
+ schemaRDD3.registerAsTable("applySchema3")
+
+ checkAnswer(
+ sql("SELECT f1.f11, f2['D4'] FROM applySchema3"),
+ (1, null) ::
+ (2, null) ::
+ (3, null) ::
+ (4, 2147483644) :: Nil)
}
}