我正在使用Spark SQL API和DataFrame API执行相同的Spark代码。但是,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:DataFrame API
df1 = spark.sql(<qry1>)
df2 = spark.sql(<qry2>)
df3 = df1.union(df2)
df3.write.saveAsTable(<table_name>)
据我了解,Spark SQL和DataFrame API都在后台生成相同的代码,并且执行时间必须相似。
注意:“ qry1”和“ qry2”是具有groupBy的简单选择查询 条款。