在 pyspark databricks 中并行执行多个笔记本

Execute multiple notebooks in parallel in pyspark databricks

问题很简单:

master_dim.py 调用 dim_1.pydim_2.py 并行执行。这在 databricks pyspark 中可能吗?

下图解释了我正在尝试做什么,由于某种原因它出错了,我在这里遗漏了什么吗?

你的问题是你只将 Test/ 作为第一个参数传递给 dbutils.notebook.run(要执行的笔记本的名称),但你没有这样名称的笔记本。

您需要将路径列表从 ['Threading/dim_1', 'Threading/dim_2'] 修改为 ['dim_1', 'dim_2'] 并将 dbutils.notebook.run('Test/', ...) 替换为 dbutils.notebook.run(path, ...)

或将dbutils.notebook.run('Test/', ...)改为dbutils.notebook.run('/Test/' + path, ...)

仅供其他人使用,以防他们了解它的工作原理:

from multiprocessing.pool import ThreadPool
pool = ThreadPool(5)
notebooks = ['dim_1', 'dim_2']
pool.map(lambda path: dbutils.notebook.run("/Test/Threading/"+path, timeout_seconds= 60, arguments={"input-data": path}),notebooks)