Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pyspark 同时为不同的参数运行相同的Databricks笔记本?_Pyspark_Databricks - Fatal编程技术网

Pyspark 同时为不同的参数运行相同的Databricks笔记本?

Pyspark 同时为不同的参数运行相同的Databricks笔记本?,pyspark,databricks,Pyspark,Databricks,以下代码(不是我的)能够同时运行NotebookA和NotebookB。我需要一些帮助来找出如何将多个参数传递到同一个笔记本 我想将此参数列表传递给每个笔记本: args = {} args["arg1"] = "some value" args["arg2"] = "another value" 如果我想将上面的参数传递给每个正在运行的笔记本,我需要在下面的代码中修改什么 以下是工作代码: from multip

以下代码(不是我的)能够同时运行NotebookA和NotebookB。我需要一些帮助来找出如何将多个参数传递到同一个笔记本

我想将此参数列表传递给每个笔记本:

args = {}
args["arg1"] = "some value"
args["arg2"] = "another value"
如果我想将上面的参数传递给每个正在运行的笔记本,我需要在下面的代码中修改什么

以下是工作代码:

from multiprocessing.pool import ThreadPool
pool = ThreadPool(10)
inputs = [("NotebookA", "NotebookB") ]

run_in_parallel = lambda x: dbutils.notebook.run(x, 1800) 

from concurrent.futures import ThreadPoolExecutor, wait 
pool = ThreadPoolExecutor(3) 
results = [] 
with ThreadPoolExecutor(3) as pool:
  for x in inputs: 
    results.extend(pool.map(run_in_parallel, list(x)))

dbutils.notebook.run
也接受第三个参数,这是一个参数映射(请参阅)。因此,在您的情况下,您需要将
run\u in\u parallel
的定义更改为如下内容:

并行运行=lambda x:dbutils.notebook.run(x,1800,args) 代码的其余部分应该是相同的

如果要将不同的参数传递给不同的笔记本,则需要有一个元组列表,并将此列表传递给
映射
,如下所示:

data=[('notebook1',{'arg1':'abc'}),('notebook2',{'arg1':'def','arg2':'jkl'})]
...
并行运行=lambda x:dbutils.notebook.run(x[0],1800,x[1])
使用ThreadPoolExecutor(3)作为池:
extend(pool.map(并行运行,数据))

dbutils.notebook.run
也接受第三个参数,这是一个参数映射(请参阅)。因此,在您的情况下,您需要将
run\u in\u parallel
的定义更改为如下内容:

并行运行=lambda x:dbutils.notebook.run(x,1800,args)
代码的其余部分应该是相同的

如果要将不同的参数传递给不同的笔记本,则需要有一个元组列表,并将此列表传递给
映射
,如下所示:

data=[('notebook1',{'arg1':'abc'}),('notebook2',{'arg1':'def','arg2':'jkl'})]
...
并行运行=lambda x:dbutils.notebook.run(x[0],1800,x[1])
使用ThreadPoolExecutor(3)作为池:
extend(pool.map(并行运行,数据))