py4j.Py4JException:将类方法传递到pyspark中的映射时,方法_getstate___([])不存在
我在一个类中有一个rdd,我将map函数定义为class method,当我将map函数传递给pyspark map时,它引发了一个错误: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
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之外,我如何处理它