我正在尝试更新 pyspark 中的变量,并希望在另一种方法中使用相同的变量 . 我在课堂上使用 @property ,当我在python中测试它时它按预期工作但当我试图在 pyspark 中实现它时它不会更新变量 . 请帮我看看我做错了什么 .

Code:

class Hrk(object):
    def __init__(self, hrkval):
        self.hrkval = hrkval

    @property
    def hrkval(self):
        return self._hrkval

    @hrkval.setter
    def hrkval(self, value):
        self._hrkval = value

    @hrkval.deleter
    def hrkval(self):
        del self._hrkval


filenme = sc.wholeTextFiles("/user/root/CCDs")

hrk = Hrk("No Value")

def add_demo(filename):
   pfname[]
   plname[]
   PDOB[]
   gender[]
   .......i have not mentioned my logic, i skipped that part......
   hrk.hrkval = pfname[0]+"@#"+plname[0]+PDOB[0]+gender[0]
   return (str(hrk.hrkval))


def add_med(filename):
   return (str(hrk.hrkval))


filenme.map(getname).map(add_demo).saveAsTextFile("/user/cloudera/Demo/")
filenme.map(getname).map(add_med).saveAsTextFile("/user/cloudera/Med/")

在我的第一个方法调用(add_demo)中,我得到了正确的值,但是当我想在第二个方法中使用相同的变量时,我得到 No Value . 我不知道为什么它不更新变量 . 类似的逻辑在python中工作得很好 .