Apache spark Spark数据帧过滤器和选择,为什么它们的位置无关紧要?

Apache spark Spark数据帧过滤器和选择,为什么它们的位置无关紧要?,apache-spark,Apache Spark,给定一个spark数据帧df,我发现df.filter(col(“label”)==1.select(“user”)等于df.select(“user”).filter(col(“label”)==1 谁能告诉我过滤器的位置无关紧要的原因吗?为什么第二个表达式不抛出异常 spark版本是2.3.4,scala版本是2.11.8有趣的问题。。。可能是因为执行计划的优化?可能在这两种情况下都是先进行筛选。这是因为优化的查询计划在这两种情况下都是相同的。两种情况下,您都可以使用explain(true

给定一个spark数据帧
df
,我发现
df.filter(col(“label”)==1.select(“user”)
等于
df.select(“user”).filter(col(“label”)==1

谁能告诉我
过滤器的位置无关紧要的原因吗?为什么第二个表达式不抛出异常


spark版本是2.3.4,scala版本是2.11.8

有趣的问题。。。可能是因为执行计划的优化?可能在这两种情况下都是先进行筛选。这是因为优化的查询计划在这两种情况下都是相同的。两种情况下,您都可以使用explain(true)进行检查。@koiralo@ernest_k谢谢!我使用explain(true)进行检查,发现它们都在物理计划中先进行
筛选
,然后再进行
选择