py4j.Py4JException:将类方法传递到pyspark中的映射时,方法_getstate___([])不存在

py4j.Py4JException:将类方法传递到pyspark中的映射时,方法_getstate___([])不存在,pyspark,Pyspark,我在一个类中有一个rdd,我将map函数定义为class method,当我将map函数传递给pyspark map时,它引发了一个错误:py4j.Py4JException:method\uuu getstate\uuu([])不存在,我的代码: class A(object): def __init__(self): conf = SparkConf().setMaster("local[*]").setAppName("A") self.spark = SparkSessi

我在一个类中有一个rdd,我将map函数定义为class method,当我将map函数传递给pyspark map时,它引发了一个错误:
py4j.Py4JException:method\uuu getstate\uuu([])不存在
,我的代码:

class A(object):
def __init__(self):
    conf = SparkConf().setMaster("local[*]").setAppName("A")
    self.spark = SparkSession.builder.config(conf=conf).getOrCreate()

def f(self):
    mapper = self.mapper
    rdds = self.spark.sparkContext.parallelize([1, 2, 3])
    print(rdds.map(mapper).collect())

# @staticmethod
def mapper(self, row):
    s = []
    for i in range(5):
        if row == 1:
            if len(s) >= 2:
                break
        if row == 2:
            if len(s) >= 3:
                break
        s.append(row)
    return s
有人说self不能传递给workers,所以我使用了
mapper=self.mapper
,但它仍然不起作用,除了向mapper添加staticmethod decorator之外,我如何处理它