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
。