【发布时间】:2023-03-24 21:18:02
【问题描述】:
问题很简单:
master_dim.py 调用 dim_1.py 和 dim_2.py 并行执行。这在databricks pyspark中是否可行?
下图解释了我想要做什么,它由于某种原因出错,我在这里遗漏了什么吗?
【问题讨论】:
标签: databricks azure-databricks aws-databricks databricks-community-edition
问题很简单:
master_dim.py 调用 dim_1.py 和 dim_2.py 并行执行。这在databricks pyspark中是否可行?
下图解释了我想要做什么,它由于某种原因出错,我在这里遗漏了什么吗?
【问题讨论】:
标签: databricks azure-databricks aws-databricks databricks-community-edition
您的问题是您仅将 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)
【讨论】:
path - 在这种情况下,如果path 不是绝对的,则将项目移动到新文件夹等会更容易,那么它会被视为相对于当前笔记本