aboutsummaryrefslogtreecommitdiff
path: root/sql/catalyst/src
diff options
context:
space:
mode:
authorPunya Biswal <pbiswal@palantir.com>2015-04-21 14:50:02 -0700
committerMichael Armbrust <michael@databricks.com>2015-04-21 14:50:02 -0700
commit2a24bf92e6d36e876bad6a8b4e0ff12c407ebb8a (patch)
treec49d92745450245227daa05c2b86f4cf51352bb9 /sql/catalyst/src
parent6265cba00f6141575b4be825735d77d4cea500ab (diff)
downloadspark-2a24bf92e6d36e876bad6a8b4e0ff12c407ebb8a.tar.gz
spark-2a24bf92e6d36e876bad6a8b4e0ff12c407ebb8a.tar.bz2
spark-2a24bf92e6d36e876bad6a8b4e0ff12c407ebb8a.zip
[SPARK-6996][SQL] Support map types in java beans
liancheng mengxr this is similar to #5146. Author: Punya Biswal <pbiswal@palantir.com> Closes #5578 from punya/feature/SPARK-6996 and squashes the following commits: d56c3e0 [Punya Biswal] Fix imports c7e308b [Punya Biswal] Support java iterable types in POJOs 5e00685 [Punya Biswal] Support map types in java beans
Diffstat (limited to 'sql/catalyst/src')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala20
1 files changed, 20 insertions, 0 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala
index d4f9fdacda..a13e2f36a1 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/CatalystTypeConverters.scala
@@ -17,6 +17,7 @@
package org.apache.spark.sql.catalyst
+import java.lang.{Iterable => JavaIterable}
import java.util.{Map => JavaMap}
import scala.collection.mutable.HashMap
@@ -49,6 +50,16 @@ object CatalystTypeConverters {
case (s: Seq[_], arrayType: ArrayType) =>
s.map(convertToCatalyst(_, arrayType.elementType))
+ case (jit: JavaIterable[_], arrayType: ArrayType) => {
+ val iter = jit.iterator
+ var listOfItems: List[Any] = List()
+ while (iter.hasNext) {
+ val item = iter.next()
+ listOfItems :+= convertToCatalyst(item, arrayType.elementType)
+ }
+ listOfItems
+ }
+
case (s: Array[_], arrayType: ArrayType) =>
s.toSeq.map(convertToCatalyst(_, arrayType.elementType))
@@ -124,6 +135,15 @@ object CatalystTypeConverters {
extractOption(item) match {
case a: Array[_] => a.toSeq.map(elementConverter)
case s: Seq[_] => s.map(elementConverter)
+ case i: JavaIterable[_] => {
+ val iter = i.iterator
+ var convertedIterable: List[Any] = List()
+ while (iter.hasNext) {
+ val item = iter.next()
+ convertedIterable :+= elementConverter(item)
+ }
+ convertedIterable
+ }
case null => null
}
}