j-esse commented on issue #23556: [SPARK-26626][SQL] Maximum size for 
repeatedly substituted aliases in SQL expressions
URL: https://github.com/apache/spark/pull/23556#issuecomment-475805212
 
 
   
   @HyukjinKwon just to reiterate:
   
   * We don't want to disable the rule, and this PR doesn't disable the rule in 
any circumstances, it just improves it - it will still collapse projects, it 
will just not fully collapse some (when it doesn't make sense to).   The whole 
point if the optimiser is to make queries better, and in some cases 
CollapseProject is failing at this, and definitively making queries worse.
   * Currently, even if you do disable CollapseProject, you will still have 
problems (e.g. OOMs) since the issue also exists in `PhysicalOperation` (and in 
`PushDownPredicate`, which we're working on another fix for)
   * Even if the solution was to disable CollapseProject (which it isn't), it 
would not be obvious to Spark users that this issue exists, or when they might 
encounter it, or even that they are hitting the issue - they will just 
encounter slowness and OOMs, and though extensive debugging, stack trace 
checks, etc may eventually discover that CollapseProject is causing the 
problem.  (But to reiterate, currently even disabling CollapseProject doesn't 
fix the issue).    The only other solution would be to disable CollapseProject 
in Spark by default, and have well-documented warnings about the issues it can 
cause, and that Spark users should only enable it if they're confident that thy 
won't hit these issues.
   * There is no manual configuration or estimation required - we set 
`spark.sql.maxRepeatedAliasSize` to a sensible default that we expect to 
maintain or improve performance in all cases.
   * We have been hitting this issue in a range of situations - any query that 
applies a series of changes to a column will hit it.
   
   In the chart above, the x axis is the `spark.sql.maxRepeatedAliasSize` 
setting, and the y axis is the time taken for execution of our test query (when 
the setting is 1300 or higher it starts to OOM)
   
   
   Here's a simple example to illustrate the problem:
   
   Take this simple query, running in Spark shell, which simulates making 
multiple (10) changes to a column:
   
   ```
   scala> var df = Seq(1, 2, 3).toDF("a").withColumn("b", lit(10)).cache()
   df: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [a: int, b: int]
   
   scala> for( i <- 1 to 10 ) {
     df = df.select(('a + 'b).as('a), ('a - 'b).as('b))
   }
   ```
   
   This is the original query plan:
   
   ```
   Project [(a#51 + b#52) AS a#55, (a#51 - b#52) AS b#56]
   +- Project [(a#47 + b#48) AS a#51, (a#47 - b#48) AS b#52]
      +- Project [(a#43 + b#44) AS a#47, (a#43 - b#44) AS b#48]
         +- Project [(a#39 + b#40) AS a#43, (a#39 - b#40) AS b#44]
            +- Project [(a#35 + b#36) AS a#39, (a#35 - b#36) AS b#40]
               +- Project [(a#31 + b#32) AS a#35, (a#31 - b#32) AS b#36]
                  +- Project [(a#27 + b#28) AS a#31, (a#27 - b#28) AS b#32]
                     +- Project [(a#23 + b#24) AS a#27, (a#23 - b#24) AS b#28]
                        +- Project [(a#19 + b#20) AS a#23, (a#19 - b#20) AS 
b#24]
                           +- Project [(a#4 + b#6) AS a#19, (a#4 - b#6) AS b#20]
                              +- Project [a#4, 10 AS b#6]
                                 +- Project [value#1 AS a#4]
                                    +- LocalRelation [value#1]
   ```
   
   This is the optimized query plan, with this fix applied (using the default 
`spark.sql.maxRepeatedAliasSize` of 100):
   
   
   
   > scala> print(df.queryExecution.optimizedPlan)
   > Project [((((a#39 + b#40) + (a#39 - b#40)) + ((a#39 + b#40) - (a#39 - 
b#40))) + (((a#39 + b#40) + (a#39 - b#40)) - ((a#39 + b#40) - (a#39 - b#40)))) 
AS a#55, ((((a#39 + b#40) + (a#39 - b#40)) + ((a#39 + b#40) - (a#39 - b#40))) - 
(((a#39 + b#40) + (a#39 - b#40)) - ((a#39 + b#40) - (a#39 - b#40)))) AS b#56]
   > +- Project [((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) 
+ (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) 
+ (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6))))) + (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) 
- (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) 
- ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) 
+ (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))))) AS a#39, ((((((a#4 + b#6) + 
(a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - 
(a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) - 
(((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + 
(a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + 
((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6)))))) AS b#40]
   >    +- InMemoryRelation [a#4, b#6], StorageLevel(disk, memory, 
deserialized, 1 replicas)
   >          +- LocalTableScan [a#4, b#6]
   > 
   
   Now here is the optimized query plan *without* this fix applied. You can see 
how the query tree explodes exponentially.  This is only a very simple query, 
with only 10 changes - more complex queries with, with 100s of changes, will 
easily OOM.  We've seen vast reductions in the memory required for queries - 
without the fix, some still OOM using all available server memory; with the fix 
those queries run fast with only 512MB.
   
   
   >    scala> print(df.queryExecution.optimizedPlan)
   >    Project [((((((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 
+ b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - 
b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) + (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 
+ b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 
+ b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))))) + ((((((a#4 + b#6) + 
(a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - 
(a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) - 
(((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + 
(a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + 
((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6))))))) + (((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 
+ b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - 
b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) + (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 
+ b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 
+ b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))))) - ((((((a#4 + b#6) + 
(a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - 
(a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) - 
(((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + 
(a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + 
((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6)))))))) + ((((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 
+ b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - 
b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) + (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 
+ b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 
+ b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))))) + ((((((a#4 + b#6) + 
(a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - 
(a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) - 
(((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + 
(a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + 
((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6))))))) - (((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 
+ b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - 
b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) + (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 
+ b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 
+ b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))))) - ((((((a#4 + b#6) + 
(a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - 
(a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) - 
(((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + 
(a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + 
((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6))))))))) + (((((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 
- b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + 
((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + 
(a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) + (((((a#4 + b#6) + (a#4 - b#6)) 
+ ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - 
(((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))))) + ((((((a#4 + 
b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - 
b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + 
b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6))))) - (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + 
(((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + 
(a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6))))))) + (((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + 
b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 
+ b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) + (((((a#4 + b#6) + (a#4 
- b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + 
b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))))) - 
((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) 
+ (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) 
+ ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6))))) - (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) 
+ (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) 
+ (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6)))))))) - ((((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + 
b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 
+ b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) + (((((a#4 + b#6) + (a#4 
- b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + 
b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))))) + 
((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) 
+ (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) 
+ ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6))))) - (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) 
+ (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) 
+ (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6))))))) - (((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + 
b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 
+ b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) + (((((a#4 + b#6) + (a#4 
- b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + 
b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))))) - 
((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) 
+ (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) 
+ ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6))))) - (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) 
+ (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) 
+ (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6)))))))))) AS a#55, ((((((((((a#4 + b#6) + (a#4 - 
b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + 
b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) + 
(((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + 
(a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + 
((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6)))))) + ((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 
+ b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - 
b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) - (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 
+ b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 
+ b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))))) + (((((((a#4 + b#6) + 
(a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - 
(a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) + 
(((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + 
(a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + 
((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6)))))) - ((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 
+ b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - 
b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) - (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 
+ b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 
+ b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))))))) + ((((((((a#4 + b#6) 
+ (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - 
(a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) + 
(((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + 
(a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + 
((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6)))))) + ((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 
+ b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - 
b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) - (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 
+ b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 
+ b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))))) - (((((((a#4 + b#6) + 
(a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - 
(a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) + 
(((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + 
(a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + 
((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6)))))) - ((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 
+ b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - 
b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) - (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 
+ b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 
+ b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))))))) - (((((((((a#4 + 
b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - 
b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + 
b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6))))) + (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + 
(((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + 
(a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6)))))) + ((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + 
b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 
+ b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) - (((((a#4 + b#6) + (a#4 
- b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + 
b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))))) + 
(((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) 
+ (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) 
+ ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6))))) + (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) 
+ (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) 
+ (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6)))))) - ((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + 
b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 
+ b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) - (((((a#4 + b#6) + (a#4 
- b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + 
b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))))))) - 
((((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + 
b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - 
b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + 
b#6) - (a#4 - b#6))))) + (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 
+ b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - 
b#6)) - ((a#4 + b#6) - (a#4 - b#6)))))) + ((((((a#4 + b#6) + (a#4 - b#6)) + 
((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - 
(((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) - (((((a#4 + b#6) 
+ (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - 
(a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))))) 
- (((((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + 
b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - 
b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + 
b#6) - (a#4 - b#6))))) + (((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - 
b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 
+ b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - (((a#4 + b#6) + (a#4 - 
b#6)) - ((a#4 + b#6) - (a#4 - b#6)))))) - ((((((a#4 + b#6) + (a#4 - b#6)) + 
((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - 
(a#4 - b#6)))) + ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) - 
(((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - b#6))))) - (((((a#4 + b#6) 
+ (a#4 - b#6)) + ((a#4 + b#6) - (a#4 - b#6))) + (((a#4 + b#6) + (a#4 - b#6)) - 
((a#4 + b#6) - (a#4 - b#6)))) - ((((a#4 + b#6) + (a#4 - b#6)) + ((a#4 + b#6) - 
(a#4 - b#6))) - (((a#4 + b#6) + (a#4 - b#6)) - ((a#4 + b#6) - (a#4 - 
b#6)))))))))) AS b#56]
   >    +- InMemoryRelation [a#4, b#6], StorageLevel(disk, memory, 
deserialized, 1 replicas)
   >          +- LocalTableScan [a#4, b#6]

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

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

Reply via email to