Python 带参数的Pypark foreach

Python 带参数的Pypark foreach,python,foreach,pyspark,Python,Foreach,Pyspark,阅读pyspark文档,我知道foreach是按照以下方式完成的: def f(x): print(x) sc.parallelize([1, 2, 3, 4, 5]).foreach(f) 但是,如果我使用一个有几个参数的函数呢 例如: def f(x,arg1,arg2,arg3): print(x*arg1+arg2+arg3) 要点是使用类似于此语法的内容: sc.parallelize([1, 2, 3, 4, 5]).foreach(f(arg1=11,arg2=21,

阅读
pyspark
文档,我知道foreach是按照以下方式完成的:

def f(x): print(x)
sc.parallelize([1, 2, 3, 4, 5]).foreach(f)
但是,如果我使用一个有几个参数的函数呢

例如:

def f(x,arg1,arg2,arg3): 
    print(x*arg1+arg2+arg3)
要点是使用类似于此语法的内容:

sc.parallelize([1, 2, 3, 4, 5]).foreach(f(arg1=11,arg2=21,arg3=31))

您可以使用
部分
功能:

from functools import partial

sc.parallelize([1, 2, 3, 4, 5]).foreach(
    partial(f, arg1=11, arg2=21, arg3=31)
 )
从functools导入部分
sc.parallelize([1,2,3,4,5])foreach(
部分(f,arg1=11,arg2=21,arg3=31)
)

partial
将一个函数、一系列未命名(
*args
)和命名(
**kwargs
)参数作为输入,并生成一个新函数,如果调用该函数,将调用原始函数
f
,且已填入未命名和命名参数。

您将生成一个
partial