Repository: spark
Updated Branches:
  refs/heads/branch-2.0 fc18e259a -> 22f0899bc


[SPARK-16837][SQL] TimeWindow incorrectly drops slideDuration in constructors

## What changes were proposed in this pull request?

Fix of incorrect arguments (dropping slideDuration and using windowDuration) in 
constructors for TimeWindow.

The JIRA this addresses is here: 
https://issues.apache.org/jira/browse/SPARK-16837

## How was this patch tested?

Added a test to TimeWindowSuite to check that the results of TimeWindow object 
apply and TimeWindow class constructor are equivalent.

Author: Tom Magrino <[email protected]>

Closes #14441 from tmagrino/windowing-fix.

(cherry picked from commit 1dab63d8d3c59a3d6b4ee8e777810c44849e58b8)
Signed-off-by: Sean Owen <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/22f0899b
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/22f0899b
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/22f0899b

Branch: refs/heads/branch-2.0
Commit: 22f0899bc78e1f2021084c6397a4c05ad6317bae
Parents: fc18e25
Author: Tom Magrino <[email protected]>
Authored: Tue Aug 2 09:16:44 2016 -0700
Committer: Sean Owen <[email protected]>
Committed: Tue Aug 2 09:16:50 2016 -0700

----------------------------------------------------------------------
 .../spark/sql/catalyst/expressions/TimeWindow.scala     |  4 ++--
 .../sql/catalyst/expressions/TimeWindowSuite.scala      | 12 ++++++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/22f0899b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/TimeWindow.scala
----------------------------------------------------------------------
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/TimeWindow.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/TimeWindow.scala
index 66c4bf2..7ff61ee 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/TimeWindow.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/TimeWindow.scala
@@ -45,12 +45,12 @@ case class TimeWindow(
       slideDuration: Expression,
       startTime: Expression) = {
     this(timeColumn, TimeWindow.parseExpression(windowDuration),
-      TimeWindow.parseExpression(windowDuration), 
TimeWindow.parseExpression(startTime))
+      TimeWindow.parseExpression(slideDuration), 
TimeWindow.parseExpression(startTime))
   }
 
   def this(timeColumn: Expression, windowDuration: Expression, slideDuration: 
Expression) = {
     this(timeColumn, TimeWindow.parseExpression(windowDuration),
-      TimeWindow.parseExpression(windowDuration), 0)
+      TimeWindow.parseExpression(slideDuration), 0)
   }
 
   def this(timeColumn: Expression, windowDuration: Expression) = {

http://git-wip-us.apache.org/repos/asf/spark/blob/22f0899b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/TimeWindowSuite.scala
----------------------------------------------------------------------
diff --git 
a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/TimeWindowSuite.scala
 
b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/TimeWindowSuite.scala
index b82cf8d..d6c8fcf 100644
--- 
a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/TimeWindowSuite.scala
+++ 
b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/TimeWindowSuite.scala
@@ -108,4 +108,16 @@ class TimeWindowSuite extends SparkFunSuite with 
ExpressionEvalHelper with Priva
       TimeWindow.invokePrivate(parseExpression(Rand(123)))
     }
   }
+
+  test("SPARK-16837: TimeWindow.apply equivalent to TimeWindow constructor") {
+    val slideLength = "1 second"
+    for (windowLength <- Seq("10 second", "1 minute", "2 hours")) {
+      val applyValue = TimeWindow(Literal(10L), windowLength, slideLength, "0 
seconds")
+      val constructed = new TimeWindow(Literal(10L),
+        Literal(windowLength),
+        Literal(slideLength),
+        Literal("0 seconds"))
+      assert(applyValue == constructed)
+    }
+  }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to