使用下面的例子在一个大表:pages = spark.sql('select * from table xx'),我发现查询在几秒钟内运行,但只要我想用pages.show(n=10)查看数据,就需要几分钟才能获得数据的样本。SQL(spark.sql)命令需要不到1秒的时间,而pages.show(n=10)需要几分钟。
pages = spark.sql('select * from table xx')
pages.show(n=10)
spark.sql
0x6upsns1#
Spark执行延迟计算,因此它不会开始实际执行命令(例如select * from table xx),直到调用“action”(例如,在Databricks中的.show(),.write或display())。运行时间<1秒的部分是评估-它检查命令是否可以执行,但实际上直到操作才执行。关于Transformation vs Actions with Spark的相关阅读:
select * from table xx
.show()
.write
display()
1条答案
按热度按时间0x6upsns1#
Spark执行延迟计算,因此它不会开始实际执行命令(例如
select * from table xx
),直到调用“action”(例如,在Databricks中的.show()
,.write
或display()
)。运行时间<1秒的部分是评估-它检查命令是否可以执行,但实际上直到操作才执行。
关于Transformation vs Actions with Spark的相关阅读: