astral-compiler/astral/catalyst/impl/src/com/astraldb/catalyst/OptimizerTest.scala

43 lines
1.1 KiB
Scala
Raw Normal View History

package com.astraldb.catalyst
2023-07-08 18:03:20 -04:00
import org.apache.spark.sql.{ Row, SparkSession }
import org.apache.spark.sql.types._
import org.apache.spark.sql.functions._
object OptimizerTest
{
def main(args: Array[String]): Unit =
{
2023-07-08 18:03:20 -04:00
val spark: SparkSession =
SparkSession.builder
.appName("OptimizerTest")
.master("local")
.getOrCreate()
val r = spark.emptyDataFrame
.select(lit(1) as "A", lit(2) as "B")
r.createOrReplaceTempView("R")
val df = spark.sql("SELECT * FROM R")
println(df.queryExecution.logical)
println(df.queryExecution.analyzed)
println("------------------")
val optimized =
Time("Astral Optimizer") {
Optimizer.rewrite(df.queryExecution.analyzed)
}
println("------------------\nAstral Optimized Query:\n")
println(optimized)
println("------------------")
val sparkOptimized =
Time("Spark Optimizer") {
df.queryExecution.optimizedPlan
}
println("------------------\nSpark Optimized Query:\n")
println(sparkOptimized)
println("------------------")
}
}