gpt4 book ai didi

apache-spark - spark中select和filter的顺序有偏好吗?

转载 作者:行者123 更新时间:2023-11-28 18:06:33 26 4
gpt4 key购买 nike

我们有两种方法从 spark 数据帧 df 中选择和过滤数据。第一:

df = df.filter("filter definition").select('col1', 'col2', 'col3')

第二个:

df = df.select('col1', 'col2', 'col3').filter("filter definition")

假设我们想在那之后调用count 的 Action 。如果我们可以更改 filterselect 在 spark 中的位置(我的意思是在我们从选定列而不是更多列中使用的过滤器的定义中),哪一个性能更高?为什么? filterselect 是否交换不同的操作有什么区别吗?

最佳答案

Spark(1.6及以上版本)使用catalyst optimiser对于查询,性能较差的查询将转换为高效的查询。

enter image description here

只是为了确认您可以调用 dataframe 上的 explain(true) 来检查其优化计划,这对于两个查询都是相同的。

Query1 计划: enter image description here

Query2 计划: enter image description here

PS:新变化是引入cost based optimiser.

关于apache-spark - spark中select和filter的顺序有偏好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53143208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com