如果通过方法链与SparkSQL编写Spark应用程序,性能是否有所不同?我知道使用方法编写代码更加灵活,但我不确定两者之间的性能。
示例:
spark.select().filter().etc....
与
spark.sql("<insert query here>")
答案 0 :(得分:1)
两者之间的性能没有差异
df.select($"some_col").filter($"filter_col" === "somevalue")
和
spark.sql("select some_col from some_table where filter_col = 'somevalue'")
两种情况下生成的火花计划是相同的。在这些之中,选择完全是主观的。
您可以通过运行以下命令检查火花计划:
df.queryExecution.sparkPlan
进一步阅读Spark计划:
https://dzone.com/articles/understanding-optimized-logical-plan-in-spark https://databricks.com/blog/2015/04/13/deep-dive-into-spark-sqls-catalyst-optimizer.html