You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "APeng Zhang (Jira)" <ji...@apache.org> on 2020/01/02 13:15:00 UTC
[jira] [Updated] (SPARK-30408) orderBy in sortBy clause is removed
by EliminateSorts
[ https://issues.apache.org/jira/browse/SPARK-30408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
APeng Zhang updated SPARK-30408:
--------------------------------
Description:
OrderBy in sortBy clause will be removed by EliminateSorts.
code to reproduce:
{code:java}
val dataset = Seq( ("a", 1, 4), ("b", 2, 5), ("c", 3, 6) ).toDF("a", "b", "c")
val groupData = dataset.orderBy("b")
val sortData = groupData.sortWithinPartitions("c")
{code}
The content of groupData is:
{code:java}
partition 0:
[a,1,4]
partition 1:
[b,2,5]
partition 2:
[c,3,6]{code}
The content of sortData is:
{code:java}
partition 0:
[a,1,4]
partition 1:
[b,2,5],
[c,3,6]{code}
UT to cover this defect:
In EliminateSortsSuite.scala
{code:java}
test("should not remove orderBy in sortBy clause") {
val plan = testRelation.orderBy('a.asc).sortBy('b.desc)
val optimized = Optimize.execute(plan.analyze)
val correctAnswer = testRelation.orderBy('a.asc).sortBy('b.desc).analyze
comparePlans(optimized, correctAnswer)
}{code}
This test will be failed because sortBy was removed by EliminateSorts.
was:
OrderBy in sortBy clause will be removed by EliminateSorts.
code to reproduce:
{code:java}
val dataset = Seq( ("a", 1, 4), ("b", 2, 5), ("c", 3, 6) ).toDF("a", "b", "c")
val groupData = dataset.orderBy("b")
val sortData = groupData.sortWithinPartitions("c")
{code}
The content of groupData is:
{code:java}
partition 0:
[a,1,4]
partition 1:
[b,2,5]
partition 2:
[c,3,6]{code}
The content of sortData is:
{code:java}
partition 0:
[a,1,4]
partition 1:
[b,2,5],
[c,3,6]{code}
UT to cover this defect:
In EliminateSortsSuite.scala
{code:java}
test("should not remove orderBy in sortBy clause") {
val plan = testRelation.orderBy('a.asc).sortBy('b.desc)
val optimized = Optimize.execute(plan.analyze)
val correctAnswer = testRelation.orderBy('a.asc).sortBy('b.desc).analyze
comparePlans(optimized, correctAnswer)
}{code}
This test will be failed because sortBy was removed by EliminateSorts.
> orderBy in sortBy clause is removed by EliminateSorts
> -----------------------------------------------------
>
> Key: SPARK-30408
> URL: https://issues.apache.org/jira/browse/SPARK-30408
> Project: Spark
> Issue Type: Bug
> Components: Optimizer
> Affects Versions: 2.4.0, 2.4.1, 2.4.2, 2.4.3, 2.4.4
> Reporter: APeng Zhang
> Priority: Major
>
> OrderBy in sortBy clause will be removed by EliminateSorts.
> code to reproduce:
> {code:java}
> val dataset = Seq( ("a", 1, 4), ("b", 2, 5), ("c", 3, 6) ).toDF("a", "b", "c")
> val groupData = dataset.orderBy("b")
> val sortData = groupData.sortWithinPartitions("c")
> {code}
> The content of groupData is:
> {code:java}
> partition 0:
> [a,1,4]
> partition 1:
> [b,2,5]
> partition 2:
> [c,3,6]{code}
> The content of sortData is:
> {code:java}
> partition 0:
> [a,1,4]
> partition 1:
> [b,2,5],
> [c,3,6]{code}
>
> UT to cover this defect:
> In EliminateSortsSuite.scala
> {code:java}
> test("should not remove orderBy in sortBy clause") {
> val plan = testRelation.orderBy('a.asc).sortBy('b.desc)
> val optimized = Optimize.execute(plan.analyze)
> val correctAnswer = testRelation.orderBy('a.asc).sortBy('b.desc).analyze
> comparePlans(optimized, correctAnswer)
> }{code}
>
>
> This test will be failed because sortBy was removed by EliminateSorts.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org