Python 在pyspark中并行运行多个函数调用
我有一个在pyspark shell中运行的函数Python 在pyspark中并行运行多个函数调用,python,pandas,pyspark,multiprocessing,python-multiprocessing,Python,Pandas,Pyspark,Multiprocessing,Python Multiprocessing,我有一个在pyspark shell中运行的函数 import pandas as pd def compute(x): data = pd.read_csv("/tmp/data_{}.csv".format(x)) # Some Spark processing # Writes back final output in tmp 我想在x的列表上并行运行这个。 我试过这个- x_list=[14,63] from multiprocessing import Pro
import pandas as pd
def compute(x):
data = pd.read_csv("/tmp/data_{}.csv".format(x))
# Some Spark processing
# Writes back final output in tmp
我想在x的列表上并行运行这个。
我试过这个-
x_list=[14,63]
from multiprocessing import Process
for x in x_list:
p = Process(target = compute, args = (x,))
p.start()
这就完成了脚本。我希望它们在脚本完成之前完全运行
我怎样才能做到这一点 您必须对启动的每个进程及其上的进程保持一个句柄:
您缺少一个逗号:它应该是
(x,)
,而不是(x)
。前者是一个具有一个元素的元组;后者是一个整数,因为括号不起任何作用。是的,它有助于放置一个“,”,但现在进程开始,我的脚本完成。在我的脚本完成之前,我怎样才能让它们都完全运行呢。
from multiprocessing import Process
import pandas as pd
def compute(x):
data = pd.read_csv("/tmp/data_{}.csv".format(x))
# Some Spark processing
# Writes back final output in tmp
x_list = [14,63]
processes = []
for x in x_list:
p = Process(target=compute, args=(x,))
processes.append(p)
p.start()
for p in processes:
p.join()