aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorReynold Xin <rxin@databricks.com>2015-11-17 19:02:44 -0800
committerReynold Xin <rxin@databricks.com>2015-11-17 19:02:44 -0800
commited8d1531f93f697c54bbaecefe08c37c32b0d391 (patch)
tree35ec32aabfa09c6816f9cd8654c72270a9a7f7be /sql
parent75a292291062783129d02607302f91c85655975e (diff)
downloadspark-ed8d1531f93f697c54bbaecefe08c37c32b0d391.tar.gz
spark-ed8d1531f93f697c54bbaecefe08c37c32b0d391.tar.bz2
spark-ed8d1531f93f697c54bbaecefe08c37c32b0d391.zip
[SPARK-11793][SQL] Dataset should set the resolved encoders internally for maps.
I also wrote a test case -- but unfortunately the test case is not working due to SPARK-11795. Author: Reynold Xin <rxin@databricks.com> Closes #9784 from rxin/SPARK-11503.
Diffstat (limited to 'sql')
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala3
-rw-r--r--sql/core/src/test/scala/org/apache/spark/sql/DatasetSuite.scala11
2 files changed, 13 insertions, 1 deletions
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala b/sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala
index 4cc3aa2465..bd01dd4dc5 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala
@@ -199,11 +199,12 @@ class Dataset[T] private[sql](
* @since 1.6.0
*/
def mapPartitions[U : Encoder](func: Iterator[T] => Iterator[U]): Dataset[U] = {
+ encoderFor[T].assertUnresolved()
new Dataset[U](
sqlContext,
MapPartitions[T, U](
func,
- encoderFor[T],
+ resolvedTEncoder,
encoderFor[U],
encoderFor[U].schema.toAttributes,
logicalPlan))
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/DatasetSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/DatasetSuite.scala
index c23dd46d37..a3922340cc 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/DatasetSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/DatasetSuite.scala
@@ -73,6 +73,17 @@ class DatasetSuite extends QueryTest with SharedSQLContext {
("a", 2), ("b", 3), ("c", 4))
}
+ ignore("Dataset should set the resolved encoders internally for maps") {
+ // TODO: Enable this once we fix SPARK-11793.
+ val ds: Dataset[(ClassData, Long)] = Seq(ClassData("one", 1), ClassData("two", 2)).toDS()
+ .map(c => ClassData(c.a, c.b + 1))
+ .groupBy(p => p).count()
+
+ checkAnswer(
+ ds,
+ (ClassData("one", 1), 1L), (ClassData("two", 2), 1L))
+ }
+
test("select") {
val ds = Seq(("a", 1) , ("b", 2), ("c", 3)).toDS()
checkAnswer(