dataframe api与spark.sql之比较

anhgbhbe  于 2021-07-13  发布在  Spark
关注(0)|答案(3)|浏览(520)

这个问题在这里已经有答案了

在sparksql中编写sql与使用dataframeapi(4个答案)
两个月前关门了。
用dataframeapi格式编写代码而不是spark.sql查询有什么显著的优势吗?
想知道catalyst optimizer是否也会处理spark.sql查询。

b1payxdu

b1payxdu1#

您的Dataframe转换和sparksql查询将被转换为执行计划,catalyst将对其进行优化。
dataframe api的主要优点是可以使用dataframe optimize功能,例如: cache() ,一般来说,你将有更多的执行计划的控制。
我觉得测试你的代码更容易,人们往往会写一个巨大的查询。。。

jv4diomz

jv4diomz2#

spark sql、scala dataframe和pyspark dataframe api的优化器是相同的。

ikfrs5lh

ikfrs5lh3#

无论您是使用dataframeapi还是sparksqlapi编写代码,在性能方面都没有显著差异,因为dataframeapi和sparksqlapi都是rdd(弹性分布式数据集)之上的抽象。
catalyst optimizer优化结构化查询(用sql或dataframe/dataset API表示),这可以减少程序的运行时间并节省成本。
为了回答您的问题,catalyst optimizer同时适用于spark sql和dataframe/dataset API。
如果您想更详细地了解内部代码以及它是如何工作的,您可以查看这篇详细解释它的文章。
https://unraveldata.com/resources/catalyst-analyst-a-deep-dive-into-sparks-optimizer/

相关问题