高效地并行运行Pyspark函数



我有一个pyspark代码,它有3个函数。第一个函数是加载一些数据,并为其他两个函数做好准备。另外两个函数接受这个输出并执行一些任务并生成相应的输出。

所以代码看起来像这样,

def first_function():
# load data
# pre-process
# return pre-processed data
def second_function(output_of_first_function):
# tasks for second function
# return output
def third_function(output_of_first_function):
# tasks for third function
# return output

这些函数是从这样的主函数调用的

def main():
output_from_first_function = first_function()
output_from_second_function = second_function(output_from_first_function)
output_from_third_function = third_function(output_from_first_function)

second_function和third_function之间不存在相互依赖关系。我正在寻找一种同时并行运行这两个函数的方法。这些函数内部发生了一些转换。因此,并行地帮助这些功能可能会有所帮助。

如何并行运行second_function和third_function?这些函数中的每一个都应该创建自己的火花上下文,还是可以共享火花上下文?

从您的问题来看,您似乎并不真正需要pyspark。我认为您应该考虑使用Python线程库。如本文所述:如何使用PySpark并行运行独立转换?

最新更新