Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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
Python 在pyspark中并行运行多个函数调用_Python_Pandas_Pyspark_Multiprocessing_Python Multiprocessing - Fatal编程技术网

Python 在pyspark中并行运行多个函数调用

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

我有一个在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 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()