在pyspark内部并行运行多功能调用

时间:2018-09-08 12:11:12

标签: python pandas pyspark multiprocessing python-multiprocessing

我有一个正在pyspark-shell中运行的功能

printf

我想在x列表上并行运行它。 我尝试过-

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

这将完成脚本。我希望它们在脚本完成之前完全运行。

我该如何实现?

1 个答案:

答案 0 :(得分:0)

您必须掌握所启动的每个过程,并join()处理它们:

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()