Databricks - 自动并行和 Spark SQL

Databricks - automatic parallelism and Spark SQL

我有一个关于 Databrick 单元和与 Spark 的自动并行性的一般性问题 SQL。我有一个摘要 table,其中包含许多字段,其中大多数背后都有复杂的逻辑。

如果我将单个字段逻辑块 (%SQL) 放入单个单元格中,调度程序是否会自动尝试将单元格分配到集群上的不同节点以提高性能(取决于我有多少节点集群有)?或者,我可以使用它们的 PySpark 函数来组织并行 运行 吗?我在其他地方找不到很多关于这个的信息...

我正在使用 LTS 10.4 (Spark 3.2.1 Scala 2.12)

非常感谢 理查德

如果您在多个单元格上编写 python“pyspark”代码,则存在称为“惰性执行”的东西,这意味着实际工作仅在最后可能的时刻发生(例如写入或显示数据时)。因此,在您 运行 例如 display(df) 之前,集群上没有完成任何实际工作。所以从技术上讲,这里的多个代码单元的代码被有效地并行化了。

但是,在 Databricks Spark SQL 中,一个单元会在下一个单元开始之前执行完毕。如果你想同时 运行 那些,你可以看看 运行 同时使用多个笔记本(或同一笔记本的多个参数化实例) dbutils.notebook.run()。然后集群将自动在这些查询之间平均分配资源 运行ning 同时。