aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Armbrust <michael@databricks.com>2015-04-02 18:30:55 -0700
committerMichael Armbrust <michael@databricks.com>2015-04-02 18:30:55 -0700
commit052dee0707830cfd3cd8821ecc3471a37ede294a (patch)
treefe476efff88d7268ca139fd1438161cbd2186431
parent947802cb0de581e51f8141f6663e896de3d753ce (diff)
downloadspark-052dee0707830cfd3cd8821ecc3471a37ede294a.tar.gz
spark-052dee0707830cfd3cd8821ecc3471a37ede294a.tar.bz2
spark-052dee0707830cfd3cd8821ecc3471a37ede294a.zip
[SPARK-6686][SQL] Use resolved output instead of names for toDF rename
This is a workaround for a problem reported on the user list. This doesn't fix the core problem, but in general is a more robust way to do renames. Author: Michael Armbrust <michael@databricks.com> Closes #5337 from marmbrus/toDFrename and squashes the following commits: 6a3159d [Michael Armbrust] [SPARK-6686][SQL] Use resolved output instead of names for toDF rename
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/DataFrame.scala4
-rw-r--r--sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala8
2 files changed, 10 insertions, 2 deletions
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/DataFrame.scala b/sql/core/src/main/scala/org/apache/spark/sql/DataFrame.scala
index 34be17325b..5c6016a4a2 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/DataFrame.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/DataFrame.scala
@@ -240,8 +240,8 @@ class DataFrame private[sql](
s"Old column names (${schema.size}): " + schema.fields.map(_.name).mkString(", ") + "\n" +
s"New column names (${colNames.size}): " + colNames.mkString(", "))
- val newCols = schema.fieldNames.zip(colNames).map { case (oldName, newName) =>
- apply(oldName).as(newName)
+ val newCols = logicalPlan.output.zip(colNames).map { case (oldAttribute, newName) =>
+ Column(oldAttribute).as(newName)
}
select(newCols :_*)
}
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala
index 5297cc01ed..1db0cf7daa 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameSuite.scala
@@ -60,6 +60,14 @@ class DataFrameSuite extends QueryTest {
assert($"test".toString === "test")
}
+ test("rename nested groupby") {
+ val df = Seq((1,(1,1))).toDF()
+
+ checkAnswer(
+ df.groupBy("_1").agg(col("_1"), sum("_2._1")).toDF("key", "total"),
+ Row(1, 1) :: Nil)
+ }
+
test("invalid plan toString, debug mode") {
val oldSetting = TestSQLContext.conf.dataFrameEagerAnalysis
TestSQLContext.setConf(SQLConf.DATAFRAME_EAGER_ANALYSIS, "true")