aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorSun Rui <rui.sun@intel.com>2015-09-16 13:20:39 -0700
committerShivaram Venkataraman <shivaram@cs.berkeley.edu>2015-09-16 13:20:39 -0700
commit896edb51ab7a88bbb31259e565311a9be6f2ca6d (patch)
treea21dd5c096fc1cacb309b7a5bf7ea342e0b4b4fe /sql
parent5dbaf3d3911bbfa003bc75459aaad66b4f6e0c67 (diff)
downloadspark-896edb51ab7a88bbb31259e565311a9be6f2ca6d.tar.gz
spark-896edb51ab7a88bbb31259e565311a9be6f2ca6d.tar.bz2
spark-896edb51ab7a88bbb31259e565311a9be6f2ca6d.zip
[SPARK-10050] [SPARKR] Support collecting data of MapType in DataFrame.
1. Support collecting data of MapType from DataFrame. 2. Support data of MapType in createDataFrame. Author: Sun Rui <rui.sun@intel.com> Closes #8711 from sun-rui/SPARK-10050.
Diffstat (limited to 'sql')
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/api/r/SQLUtils.scala6
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/api/r/SQLUtils.scala b/sql/core/src/main/scala/org/apache/spark/sql/api/r/SQLUtils.scala
index d4b834adb6..f45d119c8c 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/api/r/SQLUtils.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/api/r/SQLUtils.scala
@@ -64,6 +64,12 @@ private[r] object SQLUtils {
case r"\Aarray<(.*)${elemType}>\Z" => {
org.apache.spark.sql.types.ArrayType(getSQLDataType(elemType))
}
+ case r"\Amap<(.*)${keyType},(.*)${valueType}>\Z" => {
+ if (keyType != "string" && keyType != "character") {
+ throw new IllegalArgumentException("Key type of a map must be string or character")
+ }
+ org.apache.spark.sql.types.MapType(getSQLDataType(keyType), getSQLDataType(valueType))
+ }
case _ => throw new IllegalArgumentException(s"Invaid type $dataType")
}
}