Я выполняю один и тот же искровой код, используя Spark SQL API и DataFrame API.Однако Spark SQL занимает больше времени, чем ожидалось.
Код PFB Sudo.
Случай 1: Spark SQL
%sql
CREATE TABLE <tbl_name> AS WITH <table_1> AS (
<qry1> )
,<table_2> AS (
<qry2>
)
SELECT * FROM <table_1> UNION ALL SELECT * FROM <table_2>
Случай2: API DataFrame
df1 = spark.sql(<qry1>)
df2 = spark.sql(<qry2>)
df3 = df1.union(df2)
df3.write.saveAsTable(<table_name>)
Насколько я понимаю, и Spark SQL, и API DataFrame генерируют один и тот же код под капотом, и время выполнения должно быть одинаковым.
Примечание: "qry1" и "qry2" - это простые запросы выбора с предложением groupBy.